В целях модульного тестирования мне нужно перезаписать 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!")
в реализацию.
Что я делаю не так - или я пытаюсь достичь чего-то, что не выполнимо?