JavaScript之立即执行函数

xiaoxiao2021-02-28  48

 说道在写JavaScript代码的时候,我们经常有一些变量啊,方法呀,是整个代码程序只运用一次就没有作用的一部分代码。

而这些代码又不用不可,用完之后再也不用了而且还占内存,我们就想有没有一种什么方法可以让这个函数方法用完一次,

充分展示了它的作用之后,就立即销毁。在这里,我们引入立即执行函数。

立即执行函数

 定义:立即执行函数只被执行一次,执行完之后立即销毁。

作用:针对一些初始化功能的函数。
方法:运用()执行符号进行。
执行符号定义立即执行函数有两种方式。
1.(function(){}())2.(function(){})() (现在W3C标准建议使用第一种。)
在这里,大家想在定义函数的时候,比如说我定义一个函数
function test(){ console.log("a"); } 我们在执行函数的时候通常都是:test(),进行执行。那我在上述函数后面直接加(),是不是也可以执行???
答案是不行的,在这里,这个括号是执行符号,记住一句话:函数只有表达式才能被执行符号执行。
这里上面的函数叫什么?是函数声明,你叫函数表达式。所以
var num = function test(){ console.log("a"); }() 这样是可以执行的。
被执行符号执行的表达式就会自动放弃函数的名称,也就是说:能被执行符号执行的表达式基本上成为立即执行函数。
这句话的意思是就以上述代码为例。上述表达式被执行符号执行,如果你再在控制台中找test函数 是找不到的
上面说只有函数表达式才能被函数执行,看这里
function test(a ,b,c,d){ console.log(a + b + c + d); }(1,2,3,4); 这个函数在这里是不会报错的,但也不会执行。在JavaScript引擎机制中JS引擎会想方设法的不让你错,
于是上述代码就把函数和最后面的括号分开形成:
function test(a ,b,c,d){ console.log(a + b + c + d); } (1,2,3,4); 表现出不是一体的,也不会报错。

立即执行函数的函数特性

 立即执行函数和函数一样,其实它本身就是函数,有函数的特性:可以传参,可以有返回值。
传参
立即执行函数的传参和基本函数有些不同。实在最后面的括号里面进行传实参。
(function(a,b){ console.log(a + b); }(1,2)); 
返回值
返回值和基本函数相同,声明一个参数接着函数的返回值就可以。 var num = (function(a,b){ var c = a + b; return c; }(1,2)); JavaScript语言我个人感觉是最有意思的了,我也是一个初学者,遇到问题,喜欢在博客上分享, 也希望能帮到大家。 一个初学者,有什么不足或者纰漏的话,希望在下面评论出来,相互学习,共同进步。 --主页传送门--

转载请注明原文地址: https://www.6miu.com/read-2300045.html

最新回复(0)