sch*_*gel 4 javascript unit-testing
出于单元测试的目的,我需要覆盖Number.prototype.toLocaleString()它,以便始终使用en-US而不是默认行为来调用它.我理解覆盖一个接收参数的普通内置函数,但toLocaleString()不会将Number作为参数直接转换为字符串,所以我在这里很困惑.
我尝试了以下方法:
Number.prototype.toLocaleStringTest = Number.prototype.toLocaleString
Number.prototype.toLocaleString = function() { this.toLocaleStringTest('en-US') }
Run Code Online (Sandbox Code Playgroud)
但这个新toLocaleString()功能的结果总是如此undefined.顺便说一句,我确实调用了新函数,通过console.log("I am called!")在实现中添加临时函数来确保这一点.
我做错了什么 - 或者我是否想要实现一些不可行的东西?
你非常接近......只有一个return人失踪...... :-)
Number.prototype.toLocaleStringTest = Number.prototype.toLocaleString
Number.prototype.toLocaleString = function() {
return this.toLocaleStringTest('en-US')
}
n = 123456.789;
console.log(n.toLocaleString());Run Code Online (Sandbox Code Playgroud)