Javascript js对象属性检索在幕后是如何工作的?

Javascript js对象属性检索在幕后是如何工作的?,javascript,javascript-objects,jsobject,Javascript,Javascript Objects,Jsobject,我有一个目标 var person = { firstName: 'David', lastName: 'Ferrera', age: 30 }; 我想访问2个属性: person['lastName'] person['lastname'] 这在幕后是如何工作的?引擎查看对象本身并检查其是否具有该属性。如果是,则返回相应的值。如果没有,它将获得对象的原型(它是公正的,也是对象),并重复该过程。直到找到属性或者当前检查的对象没有原型,它才会执行此操作。在最后一种情况下,它

我有一个目标

var person = {
   firstName: 'David',
   lastName: 'Ferrera',
   age: 30
};
我想访问2个属性:

  • person['lastName']
  • person['lastname']

这在幕后是如何工作的?

引擎查看对象本身并检查其是否具有该属性。如果是,则返回相应的值。如果没有,它将获得对象的原型(它是公正的,也是对象),并重复该过程。直到找到属性或者当前检查的对象没有原型,它才会执行此操作。在最后一种情况下,它返回
undefined

这都是在中的规范中定义的

由于
lastName
存在于
person
中,因此会找到该属性并返回
ferera


由于
lastname
person
中不存在,引擎将继续查看其原型(
Object.getPrototypeOf(person)
)。由于它没有
lastname
,也没有原型,因此返回
undefined

这不是搜索,而是访问对象属性。“幕后”是什么意思?你想要汇编代码还是什么?