自调用这个匿名函数
这样解释器会报错
为什么呢? 原因可以看一个普通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函数