Object.create 第一个参数中有不可写属性时,子对象不可重新赋值,请问为什么?

var a = {};

Object.defineProperty(a, 'x', { value: 42, enumerable: true, configurable: true  }); 

var b = Object.create(a);

b.x = 50; 


console.log(b.x);  // 10

console.log(b.hasOwnProperty('x'));  //false

  

https://img1.mukewang.com/5ba4a3de0001f9c200890037.jpg

如图所示,当Object.create 函数使用了a对象为原型对象,创建新对象b的时候,由于a对象中的x属性是不可写的( writable默认为false ),造成的结果是b对象只能获取到原型上的属性x,而不能对b对象自身赋值x,为什么?(使用的是chrome浏览器),请大神们帮忙解惑,万分感谢

婷婷同学_
浏览 702回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript