我正在写一个小脚本,它会被多次调用,每次都会采用不同的参数。
我的问题是,第一个电话中的内容仍然在第二个电话中徘徊,这里有一个例子,我覆盖了某些事情'在第一次通话但不第二次通话时:
var Module = (function () {
'use strict';
var somethings = '';
var exports = {};
exports.init = function (something) {
if (something) {
somethings = something;
}
console.log(somethings);
};
return exports;
})();
Module.init('Hiya');
Module.init();
事情就在这里' Hiya'记录两次。我知道为什么,但我不认为我使用正确的JS模式,我需要为每个调用提供全新的变量。任何人都可以向我推荐更好的模式吗?我非常感激,并想学习如何写出更好的JS!
答案 0 :(得分:0)
如果您不再需要变量,请删除私有变量并使用函数paramether
var Module = (function () {
'use strict';
var somethings = [];
var exports = {};
exports.init = function (something) {
if (something) {
somethings.push(something);
console.log(something);
}
};
return exports;
})();
Module.init('Hiya');
Module.init();
在这种情况下,只记录了一件事,并且没有存储消息,因为每次都需要一个新消息。
修改
我每次都更新代码以保存参数
答案 1 :(得分:0)
在返回函数内的每次调用时声明要更新的变量,并且仅在应该挂起的变量之外声明:
var Module = (function () {
'use strict';
var exports = {};
exports.init = function (something) {
var somethings = '';
if (something) {
somethings = something;
}
console.log(somethings);
};
return exports;
})();