var Names = (function () {
function Names() {}
Names.HOME = "home";
return Names;
})();
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
一个匿名函数
通常用这种方法在js实现类,避免污染全局空间。
例如下面这段Type Script代码:
编译之后生成的JS:
差别就是
Names.HOME = "home";的位置。不是很理解,
感觉是想构造一个合成类型的实例,这个实例包含一个属性和一个初始化行为
这个写法叫IIFE。立即执行表达式!
在匿名函数中定义了Names函数,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”
理论上创建一个匿名函数并立刻执行可以这么写:
但是由于JavaScript语法解析的问题,会报SyntaxError错误,因此需要用括号把整个函数定义括起来:
立即执行函数大家都知道
里面比较特殊的我感觉是
他为函数设置了一个私有的属性,可能这段代码看不出有什么用,但是如果将他写成一个计数器就比较有意义了,如下: