重新分配内置类型的原型

时间:2013-05-27 14:23:52

标签: javascript oop object prototype

Number.prototype=
{  
    constructor:Number
    min:10,
    max:15
};
var obj=new Number();
alert(obj.min);

这里我为默认的Number构造函数创建了一个新原型。 然后创建Number的新实例并将其存储在obj中。 由于我在原型分配后创建了一个实例,我希望obj.min将返回10,但它会返回undefined

我假设因为新创建的Number.prototype的构造函数属性指向同一个Number构造函数,所以实例obj的{​​{1}}属性指向新创建的原型。

我认为问题在于假设,并且[PROTOTYPE]的{​​{1}}属性指向原始默认原型。

1 个答案:

答案 0 :(得分:4)

ECMAScript定义的核心类型的prototype属性(ObjectNumberBooleanArrayStringFunction,{ {1}},Error)是只读的,您无法将其替换为您自己的。

但你可以扩展它:

RegExp