gpt4 book ai didi

javascript - 在多个文件中声明时,使函数在 Javascript IFFE 中公开

转载 作者:行者123 更新时间:2023-11-28 15:57:41 25 4
gpt4 key购买 nike

我有一些 Javascript 代码分布在多个文件中,但我想通过 IFFE 来促进缩小。有些方法必须保持公开。

Wikipedia建议访问器的实现:

var counter = (function(){
var i = 0;

return {
get: function(){
return i;
},
set: function( val ){
i = val;
},
increment: function() {
return ++i;
}
};
}());

不幸的是,当在多个文件中声明此类函数时,从 return 声明这些函数并不容易。

以下是正确的解决方案吗?如果不是,那是什么?

var counter = (function(){

var i = 0;

// Import js file 1...
this.get = function(){ return i; };

// Import js file 2...
this.set = function( val ){ i = val; };

// Import js file 3...
this.increment = function() { return ++i; };

return this;

}());

P.S.:我希望能够执行以下调用:

counter.get();
counter.set(33);
counter.increment();

最佳答案

您感兴趣的模式似乎是这样的:

//file 1
var xy = (function (that) {
that.prop1 = 1;
return that;
}(xy || {}));


//file2
var xy = (function (that) {
that.prop2 = 2;
return that;
}(xy || {}));

这将产生一个具有两个属性的全局对象xy:

xy = {
prop1: 1,
prop2: 2
};

关于javascript - 在多个文件中声明时,使函数在 Javascript IFFE 中公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18087758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com