导入 JavaScript 原型扩展

Import JavaScript prototype extension

我(在这个网站上)发现了一个很酷的小原型扩展函数,用于清理数字,现在想在我可以根据需要导入的库中使用它。我看到了如何导入定义的函数而不是原型扩展。

文件:SomeLib.js

"use strict";
Number.prototype.round = function(places) {
    return +(Math.round(this + "e+" + places)  + "e-" + places);
}
function foo() {
    console.log("doing SomeLib.foo()");
}
export default { round, foo }

文件:SomeImporter.js

"use strict";
import somelib from "./SomeLib.js"; 
somelib.foo();   // outputs 'doing SomeLib.foo()'
var someNum = 1.2345;
console.log(someNum.round(2)); // outputs 'Uncaught ReferenceError: round is not defined'

如何在另一个文件中导入 'Number.prototype.round' 函数?

不确定为什么 someNum.round() 会抛出错误,即使已经在导入文件中的 Number 原型中定义了回合。 (Number.prototype.round 在 someLib.js 中)

现在,由于您返回的回合未在 someLib.js 中的任何地方定义 您实际上可以传递 Number.prototype.round 的引用,如下所示。

export default { round: Number.prototype.round, foo }

那你要么直接用

SomeLib.round.call(someNum, 2)

或者你可以在这个文件中设置Number的原型。

虽然不确定,但为什么已经定义的 Number 原型不起作用。