var Person = function() {
this.name = "Jay";
}
Person.prototype.getName = function() {
return this.name;
}
var jay = new Person();
console.log(jay.getName()); // Jay
console.log(Person.prototype); // { getName: [Function] }
當我打電話new Person()
,我認爲它設置jay's
內部[[prototype]]
財產Person.prototype
對象。所以我明白,當我嘗試訪問一個不存在的屬性時,它將檢查對象的[[prototype]]
對於getName是Person.prototype
。如果我錯了,請糾正我。'原型'對象如何訪問'this'的新創建對象?
我很困惑的是Person.prototype
對象能夠從this
訪問jay
?從我所瞭解的this
引用的對象調用方法,這是Person.prototype
而不是jay
,並且此對象不具有name
屬性。
下面的答案可能有助於理解更多關於原型,構造函數和這個值:http://stackoverflow.com/a/16063711/1641941 – HMR