gpt4 book ai didi

javascript - 如何覆盖(或覆盖?)内置的 Javascript 函数

转载 作者:搜寻专家 更新时间:2023-11-01 05:19:17 25 4
gpt4 key购买 nike

出于单元测试目的,我需要覆盖 Number.prototype.toLocaleString(),以便始终使用 en-US 调用它而不是默认行为。我理解覆盖接收参数的普通内置函数,但是 toLocaleString() 没有将数字直接转换为字符串作为参数,所以我在这里感到困惑。

我尝试了以下方法:

Number.prototype.toLocaleStringTest = Number.prototype.toLocaleString
Number.prototype.toLocaleString = function() { this.toLocaleStringTest('en-US') }

但是这个新的 toLocaleString() 函数的结果始终是 undefined。新函数肯定会被调用,顺便说一下,我通过在实现中添加一个临时的 console.log("I am called!") 来确保这一点。

我哪里做错了——或者我正在尝试实现一些不可行的事情?

最佳答案

你非常接近......只缺少一个返回......:-)

Number.prototype.toLocaleStringTest = Number.prototype.toLocaleString
Number.prototype.toLocaleString = function() {
return this.toLocaleStringTest('en-US')
}
n = 123456.789;
console.log(n.toLocaleString());

关于javascript - 如何覆盖(或覆盖?)内置的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513935/

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