Javascript ()函数的后面意味着函数将立即被触发?
可能重复:Javascript ()函数的后面意味着函数将立即被触发?,javascript,programming-languages,Javascript,Programming Languages,可能重复: 我正在查看一些Javascript代码,并试图找出}();在return num+10之后的右键表示。这是否意味着该函数将立即执行?我在哪里可以得到更多关于这方面的信息 function addToTen(num) { return function() { return num+10; }(); } addToTen(5); // 15 谢谢, Venn.是的,它会立即执行,但在本例中,这种用法没有任何意义 通常用于匿名函数创建闭包 看
我正在查看一些Javascript代码,并试图找出}();在return num+10之后的右键表示。这是否意味着该函数将立即执行?我在哪里可以得到更多关于这方面的信息
function addToTen(num) {
return function() {
return num+10;
}();
}
addToTen(5); // 15
谢谢,
Venn.是的,它会立即执行,但在本例中,这种用法没有任何意义 通常用于
匿名函数
创建闭包
看
一个我经常使用它的地方:
(function($) {
// secure way to ensure no conflict between $ (jQuery)
// and another js-framework can happen
$...
})(jQuery);
是的,它会立即执行,但在本例中,这种用法没有任何意义 通常用于
匿名函数
创建闭包
看
一个我经常使用它的地方:
(function($) {
// secure way to ensure no conflict between $ (jQuery)
// and another js-framework can happen
$...
})(jQuery);
是的,这意味着函数对象被评估 与任何其他函数一样,您有两种方式来看待它:
var myFunction = function(val) {
return val + 1;
}
在上面描述的这个闭包或装饰器中,不是返回函数对象本身,而是返回立即执行该函数的值,因此随后返回() 与任何其他函数一样,您有两种方式来看待它:
var myFunction = function(val) {
return val + 1;
}
在上面描述的这个闭包或装饰器中,不是返回函数对象本身,而是返回立即执行该函数的值,因此是()之后。是的,但前提是它是函数表达式,这与函数声明不同。函数声明是如何定义第一个函数的:
function foo(){
}
如果在此之后添加()
,则会出现语法错误。如果函数定义为函数表达式,则添加一组括号将立即执行该函数。如果函数未按上述定义,则函数是表达式,例如:
(function(){}());
var x = function(){}();
return function(){}();
你的实际例子只是。。。奇怪,毫无意义。这几乎是一个经典的闭包示例,类似于:
function addTo(x){
return function(y){
return x + y;
}
}
var addToTen = addTo(10);
addToTen(5); // 15;
但您的实际示例相当于:
function addToTen(num){
return num + 10;
}
所有额外的东西都是完全不必要的。是的,但前提是它是一个函数表达式,这与函数声明不同。函数声明是如何定义第一个函数的:
function foo(){
}
如果在此之后添加()
,则会出现语法错误。如果函数定义为函数表达式,则添加一组括号将立即执行该函数。如果函数未按上述定义,则函数是表达式,例如:
(function(){}());
var x = function(){}();
return function(){}();
你的实际例子只是。。。奇怪,毫无意义。这几乎是一个经典的闭包示例,类似于:
function addTo(x){
return function(y){
return x + y;
}
}
var addToTen = addTo(10);
addToTen(5); // 15;
但您的实际示例相当于:
function addToTen(num){
return num + 10;
}
所有额外的东西都是完全不必要的。是的,这是一个高级javascript概念,函数一定义就执行。我不是一个JS忍者,但我可以告诉你,这个函数可以用来避免全局名称空间污染。好问题!其他人对此也很好奇:是的,这是一个高级javascript概念,函数一定义就执行。我不是一个JS忍者,但我可以告诉你,这个函数可以用来避免全局名称空间污染。好问题!其他人对此也很好奇: