0
私は公共の変数に関数を割り当て、そのモジュール内の関数を使用するモジュールを用意しています。私ができると思ったことは、以下の例を参照してください。モジュール間で関数を割り当てます
main.js
;(function() {
const test = require("./test");
function newFunction() {
console.log("New function");
}
// This works fine
test.someFunction = newFunction;
test.someFunction();
// But this doesn't
test.callSomeFunction();
}());
test.js
;(function() {
let someFunction = function() {
console.log("Old function");
}
function callSomeFunction() {
someFunction();
}
module.exports = {
someFunction,
callSomeFunction
}
}());
はこの作品を作るために、私は現在のモジュール内の関数を設定する方法を持っているので、test.js
が見えます下のスニペットのように。
test.js
;(function() {
let someFunction = function() {
console.log("Old function");
}
function callSomeFunction() {
someFunction();
}
function setSomeFunction(newFunction) {
someFunction = newFunction;
}
module.exports = {
setSomeFunction,
callSomeFunction
}
}());
私は、これは非常にエレガントなソリューションであることを感じていないので、最初の2つのスニペットが動作するように取得するかもしれないいくつかの方法の代替があった場合、私は思っていましたもし私がセッターメソッドに悩まされているのであれば、
私が何かが欠けていない限り、あなたの解決策は残念ながらうまくいきません。 'let'または' function'のどちらかで両方の関数を定義しても、古い関数が呼び出されるのと同じ動作が起こります。 – tobloef