js語言精粹 繼承

2021-08-29 09:41:52 字數 1391 閱讀 9833

當乙個函式物件被建立時,function構造器產生的函式物件會執行類似這樣的**:

this.prototype = ;
當採用構造器呼叫模式,即使用new字首去呼叫乙個函式時,這將修改函式執行的方式。如果new運算子是乙個方法而不是乙個運算子,它可能會像這樣執行:

function.method('new', function());
構造器函式的缺陷:

在編寫構造器時使其接受乙個簡單的物件說明符可能會更加友好。那個物件包含了將要構建的物件規格說明。與其這樣寫

var myobject = maker(f,l,,m,s,c);
不如這麼寫:

var myobject = maker}
var mymammal = ,

says: function()

}

差異化繼承: 通過定製乙個新物件,指明它與所基於的基本物件的區別。

用處:對某種資料結構從其他資料結構繼承的情形。

var mycat = object.beget(mymammal);

mycat.name = 'henrietta';

mycat.saying = 'mm';

mycat.purr = function(n)

mycat.get_name = function()

構造乙個不需要new字首產生物件的函式,包括以下幾個步驟:

建立乙個新物件。

選擇性的定義私有例項變數和方法。這些就是函式通過var語句定義的普通變數。

給新物件擴充方法。擁有特權去訪問方法

返回新物件 。

var mammal = function(spec);

that.get_name = function();

that.says = function()

return that;

}

cat繼承mammal;

var cat = function(spec);

that.fire = function(event)

//呼叫乙個處理程式,如果該條目包含引數,那麼傳遞它們過去。否則,傳遞該事件物件,}}

return this;

};//註冊和繫結事件

that.on = function(type, method, parameters);

if(registry.hasownproperty(type))else

return this;

};return that;

}

js語言精粹

1 typeof null object 所以不能通過typeof object 判斷為物件 a 判斷為null的,直接 null b 判斷物件 typeof object 因為null為假 2 prototype和 proto 的概念 prototype是函式的乙個屬性 每個函式都有乙個proto...

讀js語言精粹收穫

1.js可以根據選擇跳出多層迴圈 在迴圈前加個標籤 label for var i 0 i 2 i 2.typeof運算子產生的值只有 number undefined string boolean es5的基礎資料型別少了乙個null function object 注 array和null結果都...

js語言精粹之值和引用

var a 2 varb a b是a的乙個副本 b a 2b 3 基本資料型別是值複製 varc 1,2,3,4 var d c d是 1,2,3,4 的乙個引用 d.push 5 c 1,2,3,4,5 d 1,2,3,4,5 復合型別是引用複製 c和d分別指向乙個 1,2,3,4 的兩個不同的引...