簡體   English   中英

js 對象屬性檢索在幕后如何工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM