这只是为了实验。以下代码似乎无法将Object.prototype更改为null。
Object.prototype = null;
var o = new Object();
是因为它是'对象'还是内置类型?我认为我们可以为用户定义的类型更改它。对不起,如果我错了
答案 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)
此属性具有{[[Writable]]:false,[[Enumerable]]属性: false,[[Configurable]]:false}。
和8.6.1 Property Attributes对此有[[Writable]]
:
如果为false,则ECMAScript代码尝试更改属性 使用[[Put]]的[[Value]]属性不会成功。