We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我们常常会看到这样的函数格式:
(function () { // ...函数体执行逻辑 })();
其实这是一个自执行函数,一般用来包裹自身的业务逻辑,在 jQuery、underscope 等等这些知名的第三方库里都有用到,目的是:
那我们这个时候就知道了自执行函数的作用了。
这是一个被称为自执行匿名函数的设计模式,主要包含两个部分。第一部分是包围在圆括号运算符 ( ) 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。不仅可以避免外界访问此 IIFE 中的变量,而且不会污染全局作用域。
第二部分再一次使用了 ( ) 我们就知道了其实是创建了一个立即执行的表达式,JavaScript 引擎到此将直接执行函数。
当函数变成立即执行的函数表达式时,表达式中的变量不能从外部访问。
(function () { var name = "kai"; })(); // 无法从外部访问变量 name console.log(name) //undefined
将 IIFE 分配给一个变量,不是存储 IIFE 本身,而是存储 IIFE 执行后返回的结果。
var result = (function () { var name = "kai"; return name; })(); // IIFE 执行后返回的结果: result; // "kai"
The text was updated successfully, but these errors were encountered:
No branches or pull requests
我们常常会看到这样的函数格式:
其实这是一个自执行函数,一般用来包裹自身的业务逻辑,在 jQuery、underscope 等等这些知名的第三方库里都有用到,目的是:
那我们这个时候就知道了自执行函数的作用了。
这是一个被称为自执行匿名函数的设计模式,主要包含两个部分。第一部分是包围在圆括号运算符 ( ) 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。不仅可以避免外界访问此 IIFE 中的变量,而且不会污染全局作用域。
第二部分再一次使用了 ( ) 我们就知道了其实是创建了一个立即执行的表达式,JavaScript 引擎到此将直接执行函数。
示例:
当函数变成立即执行的函数表达式时,表达式中的变量不能从外部访问。
将 IIFE 分配给一个变量,不是存储 IIFE 本身,而是存储 IIFE 执行后返回的结果。
The text was updated successfully, but these errors were encountered: