【发布时间】:2016-12-24 10:29:03
【问题描述】:
关于 JS 中的原型,我有些困惑。
假设我有一个这样的对象:
let a = {
b: 1
};
现在,我想创建另一个继承 'a' 属性的对象。
let obj = Object.create(a);
所以在这种情况下,我会将我的 'obj' 的 proto 链接到 'a' 的 proto,后者将链接到 Object.prototype。第一个问题是,它是否删除了 obj.proto 的链接以替换为 a.proto ?
现在假设我这样做了:
a = 2;
我认为它会更新内存中的“a”,删除他的引用。
如果我现在这样做:
a.isPrototypeOf(obj)
它在逻辑上返回 false。但奇怪的是,'obj' 仍然指向属性 b 并且可以访问它(obj.b print 1)。除此之外的机制是什么?
【问题讨论】:
-
b 被复制到了 obj 的原型中,所以你不再需要 a...
标签: javascript prototype