我今天正在閱讀骨幹的源代碼,試圖瞭解它是如何工作的。我嘗試使自己的初始化方法在myModel實例化時觸發,但它似乎不起作用。 (警告「默認你好」)試圖瞭解JS原型繼承,爲什麼不會發生這種情況?
我在想,當myModel被創建時,它會將「this.initialize.apply」複製到myModel中,它會從Model的原型繼承initialize方法。如果myMethod沒有初始化方法,它會查找鏈,但如果myMethod確實有它,它會使用它。從我(錯誤地)思考,myModel讀取像「myModel.initialize.appy(this,arguments)」這樣的應用,但它似乎是在調用Models。
任何想法,我要去哪裏錯了? http://jsfiddle.net/LvjpK/
function Model() {
this.initialize.apply(this, arguments);
}
Model.prototype.initialize = function() {
alert("Default Hello");
};
myModel = {
initialize: function() {
alert("Hello from myModel");
}
};
var myModel = new Model();
所有你正在做的是覆蓋您創建並分配給'myModel'的對象。 –