gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:34:07 25 4
gpt4 key购买 nike

所以我知道我可以做到......

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

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

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

有没有与 Number 做类似的事情?

最佳答案

是的,您可以轻松地从 Number.prototype 继承。诀窍是通过为对象提供 .valueOf 方法来使对象可转换为数字:

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 }

只要对对象应用数学运算,就会发生强制转换,另请参阅 this answer 。不过, native Number 方法并不真正喜欢在派生对象上调用。

关于javascript - 在JavaScript中,有没有办法继承Number函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com