var a = (function(y,x) {
var x = null;
return {
foo: function(x){ return this.bar(x * y); },
bar: function(x){ return x + y; }
}
})(3,4);
Run Code Online (Sandbox Code Playgroud)
请有人帮我解释一下上面的代码究竟发生了什么?我在哪里可以阅读或参考高级JavaScript技术?对不起,我刚开始学习JavaScript.
这是一个关闭.
创建一个匿名函数,然后立即执行并分配其返回值a.
传递给它的变量(或多或少)无法被其他函数干扰.
由于某种原因,在外部函数中x=4立即被覆盖x=null.然后在每个内部函数的参数中再次覆盖.这使得首先传递它毫无意义.