Object.create 拷贝的对象 如果是通过Object.definePrototy定义的。 表现不一致问题

我们知道Object.create 可以利用原型链实现对象拷贝。


但是如果这个对象是利用Object.definePrototy定义的结果为什么就不同了

发现Object.create的对象如果使用Object.definePrototy 的get,set定义的对象属性,会在拷贝出来的对象内部就有属性。而普通对象属性则在原型链上、
请问这是为什么?

阅读 2.6k
2 个回答

我尝试用数据属性和访问器属性书写,都是没有问题的。
你再试试。

var a = {}
Object.defineProperty(a, "haha", {
    set: function(newValue) {},
    get: function() {
           return 2
    }
});
var b = Object.create(a)

@诺顿
你打印下的你变量b

推荐问题