javascript更改Object.prototype不起作用

时间:2014-03-05 15:39:59

标签: javascript javascript-objects prototype-programming

这只是为了实验。以下代码似乎无法将Object.prototype更改为null。

Object.prototype = null;
var o = new Object();

是因为它是'对象'还是内置类型?我认为我们可以为用户定义的类型更改它。对不起,如果我错了

2 个答案:

答案 0 :(得分:2)

来自MSDN
这里有更多信息:http://msdn.microsoft.com/en-us/library/f5s9ycex(v=vs.94).aspx

  

所有内部JavaScript对象都有一个原型属性   只读。可以将属性和方法添加到原型中,但是   可能不会为对象分配不同的原型。然而,   可以为用户定义的对象分配新的原型。方法和   此语言参考中每个内部对象的属性列表   指出哪些是对象原型的一部分,哪些是   不

来自规范
这里有更多信息:http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.1

  

15.2.3.1 Object.prototype

     

Object.prototype的初始值是标准的内置Object   原型对象(15.2.4)。

     

此属性具有{[[Writable]]:false,[[Enumerable]]属性:   false,[[Configurable]]:false}。

答案 1 :(得分:0)

15.2.3.1 Object.prototype指定:

  

此属性具有{[[Writable]]:false,[[Enumerable]]属性:   false,[[Configurable]]:false}。

8.6.1 Property Attributes对此有[[Writable]]

  

如果为false,则ECMAScript代码尝试更改属性   使用[[Put]]的[[Value]]属性不会成功。