-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
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
[js] 第41天 说说你对IIFE的理解 #154
Comments
立即执行函数,函数被创建后即刻执行,所以也不需要函数名,然后释放。一般用于创建其他函数所依赖的环境,这里指闭包。 不知道我的表达正不正确? 还是我说的就是错的? help |
BINGO, |
@wenyejie 常见场景有 防抖, 节流以及关于 jsonp 的回调函数。 优点不用生成一个变量? 缺点,在使用闭包时可能引起内存泄露,所以应当注意赋值时不要产生循环引用。 我感觉我面试时,老是回答不出面试官想要的 🙂🙂🙂, 怀疑自己的理解了 .... |
IIFE 就是 js es5之前没有块级作用域啊,IIFE就干这个事,就是为了私有化作用域的变量,不过 es5 const let 加入了块级作用域。 题外话:最怕这种说理解的题目,对于一些表达不好的理工科生简直就是致命打🐔 |
独立作用域,避免变量冲突问题,很多库就是这个写法 ;(function(){
})() |
IIFE是立即执行函数,在一些常见的框架中,会使用立即执行函数形成一个独立作用域,在这个函数通常会写一些依赖环境之类的东西; 立即执行函数一般是(function (){})() ,还有这样写的 (function (){}()) 它们是等价的 那么你肯定会问,刚刚写的这么多例子,不都是函数声明么,那是因为括号运算符或者! , ?,=在一定程度上把函数声明转换为函数表达式了 在立即执行函数中,如果想要访问全局中的变量,直接行参引入window即可; |
jQuery 整個就是一個立即执行函数。
另一种也很常用:
什么时候使用 1.当我们需要写一个 js 插件,并且复用率很高的时候,建议使用 2.如果命名的函数只需要使用一次,建议使用 3.独立模块,这个跟第一点差不多。单独出来,想强调一下立即执行函数的好处,开发的时候,能做到各组合模块的低耦合,减少对全局作用域的污染 |
Immediately Invoked Function Expression (function(){})() |
(function(){})()的写法: |
立即执行函数,函数被创建后即刻执行,所以也不需要函数名,然后释放。一般用于创建其他函数所依赖的环境,这里指闭包。 不知道我的表达正不正确? 还是我说的就是错的? help |
1 similar comment
立即执行函数,函数被创建后即刻执行,所以也不需要函数名,然后释放。一般用于创建其他函数所依赖的环境,这里指闭包。 不知道我的表达正不正确? 还是我说的就是错的? help |
什么是IIFE?IIFE:立即调用函数表达式 (function (){
statements
})(); 它包含两部分
|
自执行函数,函数一旦创建会立即被执行,优点是:函数内部是是作独立的作用域,避免对全局造成变量污染。 |
第41天 说说你对IIFE的理解
The text was updated successfully, but these errors were encountered: