1
爲什麼第二種模式在第一種情況下使用的次數多於第一種時,他們兩個都是一樣的?或者我錯了?OO JS繼承和原型
function Foo1(){
this.name = "Foo 1";
this.hello = function(){
console.log("hello", this.name);
};
}
var test1 = new Foo1();
test1.hello();
function Foo2(){
this.name = "Foo 2";
}
Foo2.prototype.hello = function(){
console.log("hello", this.name);
};
var test2 = new Foo2();
test2.hello();
首先爲每個實例創建一個匿名函數,而第二個爲每個原型創建一個。 – zerkms
第二種方法允許在現有和新實例上替換* hello *方法。在第一個示例中更改* hello *只會更改新實例的方法(即更改後創建的方法)。 – RobG
@ zerkms - 該函數在創建時可能是「匿名的」,但是一旦賦值給變量,它是否比通過函數聲明創建的匿名更具匿名性? ;-) – RobG