String.prototype = new Number();
console.log(String.prototype.__proto__ === Number.prototype);//return false
为什么我无法更改内置Object的原型链。
答案 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 object:String
,Number
,{{ 1}},Boolean
,Object
,Array
,Function
,Date
,RegExp
(以及其他NativeError
types)。< / p>