小编yeg*_*gao的帖子

为函数原型调用Object.defineProperty会发生什么?

var Foo = function(){};

Object.defineProperty(Foo.prototype,'x',{
    get(){
        return 3;
    }
});

var foo = new Foo();

console.dir(foo);
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果应该是

Foo {
    __proto__:{
        constructor: ƒ (),
        x: 3,
        __proto__: Object
    }
}
Run Code Online (Sandbox Code Playgroud)

但真正的结果是

Foo {
    x: 3,
    __proto__:{
        constructor: ƒ (),
        x: 3,
        __proto__: Object
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么x属性已经出现在最外层?

javascript getter prototype get defineproperty

5
推荐指数
1
解决办法
121
查看次数

标签 统计

defineproperty ×1

get ×1

getter ×1

javascript ×1

prototype ×1