[英]how does js object-property retrieval work behind the scene?
我有一個對象
var person = {
firstName: 'David',
lastName: 'Ferrera',
age: 30
};
而且,我想訪問 2 個屬性:
person['lastName']
person['lastname']
這在幕后如何運作?
引擎查看對象本身並檢查它是否具有該屬性。 如果是,則返回相應的值。 如果不是,它獲取對象的原型(也就是對象)並重復該過程。 它會這樣做,直到找到該屬性或當前檢查的對象沒有原型。 在最后一種情況下,它返回undefined
。
這都是在9.1.8.1 OrdinaryGet ( O, P, Receiver )的規范中定義的。
由於lastName
存在於person
,因此找到了該屬性並返回了Ferrera
。
由於lastname
不存在於person
,引擎繼續查看其原型( Object.getPrototypeOf(person)
)。 由於它沒有lastname
,也沒有原型,因此返回undefined
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.