问答详情
源自:4-4 [JavaScript]get/set方法

用new 创建的对象的属性能不能改写并不是和get有关吧

function foo()
	{

	}
Object.defineProperty(foo.prototype,'z',{value:1000});
var obj=new foo();
obj.z=10;
console.log(obj.z);//still 1000;

这样也是不能被改写的

提问者:fantasyfantasy 2015-06-26 10:28

个回答

  • Down_Up
    2016-04-25 20:15:19

    Object.defineProperty(foo.prototype,'z',{value:1000});

    通过这种方式定义的对象默认writable:false;

    Object.defineProperty(new foo(),'z',{value:10}); 就OK了。

  • dmzhou
    2015-06-29 17:51:11

    那个z是obj的原型的属性,应该不能直接通过obj.z来修改他的值吧