这个JavaScript是什么
What is this JavaScript
下面的代码会做什么?
我已经使用JS很多年了,但不知道这个结构是如何工作的?
(function() { /* No implementation yet */ })();
知道没有实现——如果有——我该如何调用它?以下内容会成为匿名对象吗?
var temp = (function() { })();
我可以用作:
temp.doWhateverDefined();
您有一个立即调用的函数表达式(IIFE(。它在JavaScript中非常常见。
(function() { /* No implementation yet */ })();
这被称为"立即调用函数表达式"或简称IIFE。它被立即声明、评估和调用。
基本思想是:
var x = (function() { return 5;})();
alert(x); //5
它正在立即运行。就好像你说:
var f = function() { /* No implementation yet */ }
(f)();
与相同
var f = function() { /* No implementation yet */ }
f();
它的目的是允许代码块(页面初始化等(使用它喜欢的任何变量/函数名称,而不会与其他可能使用相同名称的Javascript代码发生冲突。所有功能等。在那个街区宣布的是本地的,不要伤害外界。
这是一个匿名函数,因此除非将其分配给名称,否则您不能在创建它的行中调用其他函数
var temp = (function() { })();
这段代码应该改为
var temp = (function() { });
这样,您就可以将函数实际分配给名称。要调用它,只需使用括号
temp()
它是一个自执行函数。你不调用它,它会自动调用。
如果函数返回一些东西,var temp = (function() { })();
就会工作。
您所拥有的是一个已经被调用的自调用函数。
var temp = (function() { })();
因此,函数必须返回一个函数,使temp((或temp.something((;可以被触发。有关更多信息,请参阅下面的示例,
var temp = (function() { return {
doWhateverDefined: function () {
return 'invoked';}
};
}
)();
alert(temp.doWhateverDefined()); //should alert invoked
演示:http://jsfiddle.net/5ch8F/1/
相关文章:
- 这是什么 ==- javascript 运算符
- Javascript中的空白是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- javascript导入的最佳实践是什么
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 这是什么JavaScript语法
- 并行开发同步/阻塞和异步/非阻塞库api的好方法是什么?(JavaScript)
- 在循环中定义函数的最佳方法是什么?- JavaScript
- 这是什么javascript命令
- 在一个函数中,返回另一个函数的目的是什么?(Javascript)
- 将一组正方形除以 2 的幂的公式是什么?(Javascript)(画布)
- 有谁知道这是什么javascript图形库(或可以推荐类似的东西)
- 我现有的函数里面是什么?Javascript
- 是什么? +[]+javascript中的+[]
- 在modernizr中这是什么javascript模式?
- Number和Function之间的关系是什么?javascript中的原型
- 这是什么Javascript / jQuery模式来封闭和隐藏所有内容,但仍然可以更改页面
- 这是什么Javascript语法错误
- 这是什么javascript语法!函数(){}