Myfunction.prototype.updateMyFunction = function() {
//do something
};
Myfunction.prototype = {
updateMyfunction: function() {
//do something
}
};
Run Code Online (Sandbox Code Playgroud)
它们都产生相同的结果
第一个是添加属性Myfunction.prototype,而第二个完全替换Myfunction.prototype为新对象.
结果不会总是相同的.考虑这种情况 -
Myfunction.prototype.oldMethod = function () {
};
Myfunction.prototype.updateMyFunction = function() {
//do something
};
Run Code Online (Sandbox Code Playgroud)
加入最后一种方法后,您将能够同时访问oldMethod和updateMyFunction更新版本.如果你这样做 -
Myfunction.prototype.oldMethod = function () {
};
Myfunction.prototype = {
updateMyfunction: function() {
//do something
}
};
Run Code Online (Sandbox Code Playgroud)
然后oldMethod将从原型链中删除(因为它prototype本身正在被新对象替换),您将无法再访问它.