Myfunction.prototype.updateMyFunction = function() {
//do something
};
Myfunction.prototype = {
updateMyfunction: function() {
//do something
}
};
書面方式原型函數的這兩個方面,他們都產生相同的結果什麼是JavaScript中
Myfunction.prototype.updateMyFunction = function() {
//do something
};
Myfunction.prototype = {
updateMyfunction: function() {
//do something
}
};
書面方式原型函數的這兩個方面,他們都產生相同的結果什麼是JavaScript中
第一種是將屬性添加到Myfunction.prototype
,而第二個完全新的替代Myfunction.prototype
之間的差異目的。
結果並不總是相同的。考慮這種情況下 -
Myfunction.prototype.oldMethod = function() {
};
Myfunction.prototype.updateMyFunction = function() {
//do something
};
添加的最後一個方法後,您將能夠訪問這兩個oldMethod
和updateMyFunction
更高版本。如果你這樣做 -
Myfunction.prototype.oldMethod = function() {
};
Myfunction.prototype = {
updateMyfunction: function() {
//do something
}
};
那麼oldMethod
將從原型鏈中去除(因爲prototype
本身正與新對象代替),你將無法再訪問它。
第一個使用已經存在的MyFunction原型,而第二個使用新對象替換原型。
與更換原型一些令人驚訝的問題:
var MyFunction = function(){
};
var obj = new MyFunction();
MyFunction.prototype = {
updateMyfunction: function() {}
};
var obj2 = new MyFunction();
console.log(obj2 instanceof MyFunction) // true as expected
console.log(obj instanceof MyFunction) // false because the prototype changed