在我想要演示的简单示例中:
1. Module Pattern
2. Closure
我试图通过使用闭包来更改局部变量的值。但是,我无法实现它(在控制台中输出必须为15)。
HTML
<script>
function box(){
var a;
a=10;
var obj = {};
obj.func1 = function(b){
a = a+b;
console.log(a);
}
return obj;
}
box.func1(5);
</script>
请在示例中帮助我。
另外,在这个简单的例子中,告诉我是否错过了模块模式的关键组件?
答案 0 :(得分:2)
您没有调用box
功能。您需要在其后面加()
来调用它。
function box(){
var a;
a=10;
var obj = {};
obj.func1 = function(b){
a = a+b;
console.log(a);
}
return obj;
}
box().func1(5);
&#13;
但那不是模块模式。对于模块,将变量设置为返回对象的IIFE的结果。
var Box = (function(){
var a;
a=10;
var obj = {};
obj.func1 = function(b){
a = a+b;
console.log(a);
}
return obj;
})();
Box.func1(5);
&#13;