用object( )方法實現非建構函式的繼承
非建構函式繼承即不使用建構函式實現繼承,讓一個物件繼承另一個物件:
var parent = {
surname : '張'
}
var child = {
first_name : '小凡'
}
如上,兩個普通的物件,無法使用建構函式方法實現繼承,想實現繼承,我們可以使用json格式的發明人Douglas Crockford提出的一個object()函式:
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
這個函式其實就做了一件事,就是把子物件(F)的prototype屬性指向了父物件(o),使用這個函式:
var child= object(parent);
child.first_name='小凡';
console.log(child.surname);//張
先用父物件生成子物件,再重新賦予子物件本身的屬性,這樣就實現了子物件對父物件的繼承。
相關推薦
用object( )方法實現非建構函式的繼承
非建構函式繼承即不使用建構函式實現繼承,讓一個物件繼承另一個物件: var parent = { surname : '張' } var child = { first_name : '小凡' } 如上,兩個普通的物件,無法使用建構函式方法實現繼承,想實現繼承,我
用C語言實現字串反轉函式strrev的經典方法
2012-10-29 15:59 6621人閱讀 評論(7)收藏 舉報 C語言c語言strrev字串反轉 字串反轉函式strrev不是C語言標準庫函式,很多C語言編譯器並沒有提供對它的支援,比如你在Linux下輸入Shell命令man 3 strlen,螢幕上會顯示,
Unity3D調用android方法(非插件方式)
pri hone hand 沒有 run project ets color androi 關於Unity3Dproject與androidproject的轉換與合並,請參考我的另外一篇博客。假設你對Unity3Dproject增加到androidproject的過
類的建構函式繼承day01
下面代買的執行結果是什麼? 1 public class FatherClass { 2 public FatherClass(){ 3 System.out.println(100); 4 } 5 public Fat
js繼承 - 建構函式繼承,call apply改變this指向 原型鏈繼承,混合繼承
1、建構函式繼承 function Person(name,age){ this.name = name; this.age = age; this.run = function(){ console.log('跑....'); } } functi
建構函式繼承
// 公共函式 function Person(name, age, sex, address, phone) { this.name = name; this.age = age;
建構函式繼承,call apply改變this指向 原型鏈繼承,混合繼承
1、建構函式繼承 function Person(name,age){ this.name = name; this.age = age; this.run = function(){ console.log('跑....'); }
演算法--兩種方法實現一個Add函式,讓兩個整數相加,但是不能使用+、-、*、/等四則運算子。
方法一:(網上都解釋的很好 這裡就不贅述了) int Add1(int num1,int num2) { int sum, carry; do { //因為位運算加法,0+1=1,1+0=1,0+0=0,1+1=0
簡單的C++委託 —— 用模板類實現類成員函式的回撥
template <class R, class P1, class P2>class IDelegate{public:virtual R Invoke(P1, P2) = 0;};template <class T, class R, class P1, class P2>clas
用c語言實現一個strcat函式功能相同的函式
extern char *strcat(char *dest,char *src); 把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'。 #include "std
linux網路程式設計之用select方法實現io複用(基於udp)
1、基本概念 IO多路複用是指核心一旦發現程序指定的一個或者多個IO條件準備讀取,它就通知該程序。IO多路複用適用如下場合: (1)當客戶處理多個描述字時(一般是互動式輸入和網路套介面),必須使用I/O複用。 (2)當一個客戶同時處理多個套介面時,而這種情況是
基礎篇_執行緒 第 2 集 設定執行緒名稱兩種方法:setName或者建構函式
練習1:建立兩個執行緒,和主執行緒交替執行。原來執行緒都有自己預設的名稱Thread——編號 該編號從0開始currentThread():獲取當前執行緒物件。getName():獲取執行緒名稱。設定執行緒名稱:setName或者建構函式。 class Test ext
hibernate的快取機制是用什麼方法實現的
http://blog.sina.com.cn/s/blog_5ec49e1d0100c3h3.html 快取是介於應用程式和物理資料來源之間,其作用是為了降低應用程式對物理資料來源訪問的頻次,從而提高了應用的執行效能。快取內的資料是對物理資料來源中的資料的複製,應用程式在
用多種方法實現tab標籤切換
在開始之前先談談局外話,最近正在找工作,發現好多公司都要求在某某上面有文章發表,一次文章都沒發過的我頓時感覺好尷尬,忙裡偷閒發表點文章,畢竟第一次發,還有很多很多需要學習的地方,技術方面還有欠缺,望前輩們多多指點迷津! 昨天去面試,面試官讓我手寫一段程式碼實現
Js中的原型鏈繼承,建構函式繼承,組合繼承
昨天學習了一下js的這三種繼承,感覺面試還是會問到,今天早上就總結了一下。都寫到了程式碼裡。 <script type="text/javascript"> // -----------------------------------------原型鏈繼承
用系統方法實現網易雲音樂VC翻轉動畫
翻轉動畫僅僅是VC切換動效的一種,通過此方法可以方便的實現VC切換的各種動效。 思路: MasterVC作為根檢視控制器 AAVC和BBVC之間切換均通過MasterVC進行。 Master
【java學習記錄】2.定義一個計算矩形面積、立方體和球體體積的類,該類完成計算的方法用靜態方法實現
area_volume類(計算矩形面積和立方體體積)public class area_volume {double length,width,heigth;//長:length,寬:width,高:heigtharea_volume(double length,double
ios網絡學習------3 用非代理方法實現異步post請求
erro form b2c enc 界面 關聯 error pre mut #pragma mark - 這是私有方法。盡量不要再方法中直接使用屬性,由於一般來說屬性都是和界面關聯的,我們能夠通過參數的方式來使用屬性 #pragma mark post登錄方法 -(v
一列數字的規則如下;1,1,2,3,5,8,13,21,34........ 求第30位數字是多少,用遞規和非遞迴兩種方法演算法實現
斐波納契數列(Fibonacci Sequence),又稱黃金分割數列。在數學上,斐波納契數列以如下被以遞迴的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,現在我從演算法的角度,利用遞迴和非
PHP反射實現對類的方法依賴注入和建構函式依賴注入
前段時間一直在看tp5 發現他內部實現了控制器的依賴注入。。下面 我通過程式碼來說明一下是怎麼實現的。 首先我們準備好幾個類檔案 我們先看目錄安排 其中 start.php是啟動檔案 <?php /** * Created by PhpStorm. * User: A