Javascript 模块模式中的简单闭包示例不起作用

Javascript 模块模式中的简单闭包示例不起作用,javascript,function,design-patterns,closures,Javascript,Function,Design Patterns,Closures,在这个简单的例子中,我想演示: 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); } retu

在这个简单的例子中,我想演示:

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>

函数框(){
var a;
a=10;
var obj={};
obj.func1=函数(b){
a=a+b;
控制台日志(a);
}
返回obj;
}
方框1(5);
请帮我举个例子

另外,请告诉我在这个简单的示例中是否遗漏了模块模式的关键组件


您没有调用
函数。您需要在它后面加上
()
,才能调用它

函数框(){
var a;
a=10;
var obj={};
obj.func1=函数(b){
a=a+b;
控制台日志(a);
}
返回obj;
}

box().func1(5)您没有调用
函数。您需要在它后面加上
()
,才能调用它

函数框(){
var a;
a=10;
var obj={};
obj.func1=函数(b){
a=a+b;
控制台日志(a);
}
返回obj;
}
box().func1(5)