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

来源:4-4 [JavaScript]get/set方法

fantasyfantasy

2015-06-26 10:28

function foo()
	{

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

这样也是不能被改写的

写回答 关注

2回答

  • 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来修改他的值吧

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题