Javascript 在下面的示例中,为什么对象中已删除的密钥仍然可以访问?
在下面给定的代码中,删除Javascript 在下面的示例中,为什么对象中已删除的密钥仍然可以访问?,javascript,Javascript,在下面给定的代码中,删除objA.foo后, 它仍然可以访问 var objA=Object.create({ 福:“福” }); var-objB=objA; objB.foo='bar'; 删除objA.foo; console.log(objA.foo); console.log(objB.foo)使用具有“foo”属性的原型对象创建对象。然后向对象添加一个本地“foo”属性,这就是delete所影响的。(请注意,对象A和对象B是完全相同的对象;指定不会复制。) 对属性“foo”的后续引
objA.foo
后,
它仍然可以访问
var objA=Object.create({
福:“福”
});
var-objB=objA;
objB.foo='bar';
删除objA.foo;
console.log(objA.foo);
console.log(objB.foo)代码>使用具有“foo”属性的原型对象创建对象。然后向对象添加一个本地“foo”属性,这就是delete
所影响的。(请注意,对象A和对象B是完全相同的对象;指定不会复制。)
对属性“foo”的后续引用在原型对象上解析,而不是对象A本身。使用具有“foo”属性的原型对象创建对象A。然后向对象添加一个本地“foo”属性,这就是delete
所影响的。(请注意,对象A和对象B是完全相同的对象;指定不会复制。)
随后对属性“foo”的引用在prototype对象上解析,不是对象A本身。@lfaruki原始语法没有问题:)@lfaruki原始语法没有问题:)foo
您得到的是原始对象的prototype
链,而不是objB
foo
您得到的是来自原始对象不是来自objB
。