gpt4 book ai didi

javascript - 模块模式 : Restrict a module from being extended

转载 作者:行者123 更新时间:2023-11-30 11:51:43 25 4
gpt4 key购买 nike

我已经阅读了几篇有关 Javascript 设计模式的文章。我发现模块模式易于读/写。

我想知道是否有任何方法可以停止在 Javascript 中扩展模块。

这是我一直在使用的脚本:

var MODULE = (function(){
var increment = 0;

var funcIncrement = function(){
increment ++;
console.log(increment);
};

return {
incr: funcIncrement
}
})();


var moduleTwo = (function(MODULE){
MODULE.extension = function(){ //This module will add extension function to MODULE. I don't want this to happen
console.log('extension method');
}


})(MODULE || {});

如果我在运行上面的代码片段后执行 console.log(MODULE),那么我将获得两个用于 MODULE 的函数(incr,extension)

在第一次声明MODULE时,有没有办法限制MODULE被扩展?

最佳答案

你可以卡住返回的对象

var MODULE = (function(){
var increment = 0;

var funcIncrement = function(){
increment ++;
console.log(increment);
};

return Object.freeze({
incr: funcIncrement
});
})();

但它在旧版浏览器中不受支持。

关于javascript - 模块模式 : Restrict a module from being extended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39255433/

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