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
。这不是搜索,而是访问对象属性。“幕后”是什么意思?你想要汇编代码还是什么?