js匿名函数自调用

JavaScript022

js匿名函数自调用,第1张

对于一个js匿名函数

自调用这个匿名函数

这样解释器会报错

为什么呢? 原因可以看一个普通js函数的调用

这是一个函数声明,如果在这么一个声明后直接加上括号调用,解析器不能理解而会报错:

而a函数申明时候,调用就可以直接加 ()

这里可以看出无论是命名函数还是匿名函数,都是函数申明,而直接对匿名函数加 () 之后,解释器就不能理解而报错了

要自调用匿名函数,就需要把匿名函数声明语句变成一个表达式

需要通过return的方式把要调用的函数返回给外部。

比如:

<script>

var ta = (function(){//定义一个闭包匿名函数。

return function(){//返回匿名函数内部的匿名函数给ta

alert('1')

}

})()

ta()//执行ta,弹出信息1

</script>

补充:

闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。这种写法就是闭包的写法,闭包内部的函数如果不是return方式,在外部无法获取,无法进行调用。

扩展资料:

Function函数与Sub过程类似。但 Function函数可以有返回值。可以使用参数。如果 Function函数没有任何参数,则 Function语句必须要包含空括号。 Function函数通过函数名返回一个值。返回值的数据类型是Variant.

语法: Function 函数名 (参数1,参数2,...)

...

End Function

Function函数是包含在Function和End Function语句之间的一组VBScript语句。

参考资料来源:百度百科-Function函数