【发布时间】:2018-08-02 01:03:35
【问题描述】:
不确定我是否完全理解我在此处找到的类似问题的答案,因此请务必确定:
我想在函数中有一个局部变量,只初始化一次(类似于 C、C++ 等强类型语言中的静态变量)。
当然,我可以全局声明它,但将它放在该函数的范围内似乎更好,因为它不会在其他任何地方使用。
现在,这就是我要做的:
function func(data) {
func.PARAMS = [
{"name": "from", "size": 160, "indexed": true},
{"name": "input", "size": 256, "indexed": false},
{"name": "output", "size": 256, "indexed": false},
];
...
}
我的问题是,func.PARAMS 确实会被初始化一次,还是会在每次调用函数时都被初始化?
根据我找到的一些答案(例如this one),我需要在初始化之前添加如下内容:
if (typeof func.PARAMS == 'undefined')
当然,这种“补充”在强类型语言中是无关紧要的,所以我只想确定它是绝对必要的,以确保“静态行为”(即一次性初始化)。
【问题讨论】:
-
是的,如果不检查
typeof func.PARAMS == 'undefined',根据func,每次调用funct时都会设置PARAMS。
标签: javascript static static-variables