[英]How does the 'prototype' object have access to the newly created object for 'this'?
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
對象。 因此,我了解到,當我嘗試訪問不存在的屬性(如getName
,它將檢查對象的[[prototype]]
,即getName的Person.prototype
。 如果我錯了,請糾正我。
我感到困惑的是如何Person.prototype
目標是能夠訪問jay
從this
? 據我了解, this
是指調用該方法的對象,它是Person.prototype
而不是jay
,並且此對象不具有name
屬性。
您將“定義方法的位置”與“執行該方法的對象”混淆了。 它在Person.prototype上定義 ,但是在該特定對象上調用該方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.