修改内置对象原型

时间:2011-10-02 04:03:25

标签: javascript prototype-programming

String.prototype = new Number();
console.log(String.prototype.__proto__ === Number.prototype);//return false

为什么我无法更改内置Object的原型链。

1 个答案:

答案 0 :(得分:3)

这是因为内置构造函数 1 prototype属性是不可写的(也是不可配置且不可枚举的)。

请参阅属性属性:

Object.getOwnPropertyDescriptor(String, 'prototype');

/*
configurable: false,
enumerable: false,
writable: false
*/

这在每个内置构造函数中描述,对于String.prototype属性,请参阅:

  

15.5.3.1 String.prototype

     

...

     

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

1 :通过“内置构造函数”我引用constructor functions defined on the global objectStringNumber,{{ 1}},BooleanObjectArrayFunctionDateRegExp(以及其他NativeError types)。< / p>