为了账号安全,请及时绑定邮箱和手机立即绑定

对象原型链上的同名属性的writable为什么会影响到 对象本身的属性呢?

var a	=	{};
Object.defineProperty(a,'x',{value:1});	
var b    =    Object.create(a);
b.x=100;
console.log(b.x);    //得到的还是1

而改为

Object.defineProperty(a,'x',{value:1,writable:true});	
b.x=100;
console.log(b.x);    //得到的是100

为什么修改原型链上的同名属性的配置 会影响到对象本身?

正在回答

3 回答

Object.defineProperty(a,'x',{value:1});

因为这样定义的a的x属性是不可写的(writable:false),所以无法修改。可以将其改为以下代码,其值已被修改为100了:

Object.defineProperty(a, 'x', 

{value : 100, configurable: true});


0 回复 有任何疑惑可以回复我~
#1

无兄弟不编程 提问者

非常感谢!
2016-05-02 回复 有任何疑惑可以回复我~

应该是新js规范(ECMAScript 5)上扩展的对象

0 回复 有任何疑惑可以回复我~

writable是属性标签,并且使用defineProperty定义对象时,默认值为false

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

对象原型链上的同名属性的writable为什么会影响到 对象本身的属性呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信