Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,有没有从Number函数继承的方法?_Javascript - Fatal编程技术网

在JavaScript中,有没有从Number函数继承的方法?

在JavaScript中,有没有从Number函数继承的方法?,javascript,Javascript,所以我知道我能做到 Number.prototype.square = function () { return this * this } [Function] 4..square() 16 有没有一种方法可以从Number函数继承,这样我就不必修改Number原型了?使用函数或对象,我可以像这样继承 var NewObject = new Object() var NewFunction = new Function() 是否有一个was可以使用Number做类似的事情?是的,您可以

所以我知道我能做到

Number.prototype.square = function () { return this * this }
 [Function]
4..square()
 16
有没有一种方法可以从Number函数继承,这样我就不必修改Number原型了?使用函数或对象,我可以像这样继承

var NewObject = new Object()
var NewFunction = new Function()

是否有一个was可以使用Number做类似的事情?

是的,您可以很容易地从Number.prototype继承。诀窍是通过给对象一个.valueOf方法,使其可转换为数字:

每当对对象应用数学运算时,就会发生强制转换,另请参见。不过,本机Number方法并不真正喜欢在派生对象上调用。

使用Object.defineProperty允许您对对象进行更多的控制

Object.defineProperty(Number.prototype,'square',{value:function(){
 return this*this
},writable:false,enumerable:false});
//(5).square();
用你自己的lib也是一样的

Object.defineProperty(NumLib.prototype,'square',{value:function(){
 return this.whatever*this.whatever
},writable:false,enumerable:false});

问题不清楚:-/I为了清楚起见编辑了问题。
Object.defineProperty(NumLib.prototype,'square',{value:function(){
 return this.whatever*this.whatever
},writable:false,enumerable:false});