在JavaScript中,有没有办法继承Number函数?

2023-11-30

所以我知道我可以做到这一点...

Number.prototype.square = function () { return this * this }
 [Function]
4..square()
 16

有没有办法继承 Number 函数,这样我就不必修改 Number 原型?对于函数或对象,我可以像这样继承......

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

有没有可以用 Number 做类似的事情?


是的,您可以轻松地继承Number.prototype。诀窍是通过给你的对象一个.valueOf method:

function NumLib(n) {
    if (!(this instanceof NumLib)) return new NumLib(n);
    this.valueOf = function() {
        return n;
    }
}
NumLib.prototype = Object.create(Number.prototype);
NumLib.prototype.square = function () { return this * this }

每当对对象应用数学运算时就会发生转换,另请参见这个答案。当地人Number不过,方法并不真正喜欢在派生对象上调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在JavaScript中,有没有办法继承Number函数? 的相关文章

随机推荐