Javascript中带参数的闭包
Closure with parameter in Javascript
这是一个简单的问题,为什么var1和var2没有定义
我试图学习javascript中的闭包,并添加了一个参数,但不确定为什么它是未定义的。
var closureFunction = function(var1,var2){
var privateVar = var1+var2;
console.log("Sum of "+ var1 +" and "+ var2+"");
return function(){return privateVar;}
}();
console.log(closureFunction(2,3));
在函数之后使用括号(),它会立即执行。在这个例子中,你没有传递任何参数。
有两种可能
var closureFunction = function(var1,var2){
var privateVar = var1+var2;
console.log("Sum of "+ var1 +" and "+ var2+"");
return function(){return privateVar;}
}(2,3); //prints 'Sum of 2 and 3'
console.log(closureFunction()); //prints '5'
或者您可以在步骤
中传递参数var closureFunction = function(var1){
return function(var2 ){
console.log("Sum of "+ var1 +" and "+ var2+"");
return var1 + var2;
}
}(2); //just return a 'closure' function
console.log(closureFunction(3)); //prints 'Sum of 2 and 3 5'
或者您可以稍后执行。
var closureFunction = function(var1){
return function(var2 ){
console.log("Sum of "+ var1 +" and "+ var2+"");
return var1 + var2;
}
};
var x = closureFunction(2); //return a 'closure' function
console.log(x(3)); //prints 'Sum of 2 and 3 5'
必须在闭包可用时调用它。
var closureFunction = function(var1, var2) {
var privateVar = var1 + var2;
console.log("Sum of " + var1 + " and " + var2 + "");
return function() {
return privateVar;
}
};
console.log(closureFunction(2, 3)());
相关文章:
- 使用闭包共享构造函数参数
- javascript,将参数传递给函数内部的闭包中的回调
- JavaScript - 为什么这个闭包不保存参数
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- 如何在JavaScript中为Google闭包编译器设置参数类型
- 传递多个参数的闭包函数
- 在传递给函数之前转换参数,而不使用javascript中的闭包
- 将参数从闭包传递给事件处理程序
- 带有函数参数数组的闭包
- 将参数传递到闭包中以进行 setTimeout
- 如何在谷歌闭包模板中循环多个传递的参数
- 尝试使用带有参数的闭包作为回调
- Javascript 闭包(使用参数名称在同一函数中定义对象)
- 闭包中变量的性能与作为函数参数的性能
- Javascript 闭包函数参数
- 参数对应关系:回调与闭包(?)
- Javascript闭包,相同的参数,但它打印出不同的答案
- 传递给闭包的角度参数未定义
- 使用Google闭包编译器记录回调参数
- 参数变量在JavaScript中创建闭包