gpt4 book ai didi

javascript最佳实践定义变量(命名空间)检查尚未定义

转载 作者:可可西里 更新时间:2023-11-01 02:39:55 25 4
gpt4 key购买 nike

想从专家那里得到意见,我正在声明一个变量,它将充当我的应用程序 javascript 代码的命名空间,但我想检查它是否尚未定义。

这段代码很简洁并且“似乎”可以工作 - 有什么理由我应该避免这种情况并使用 typeof 'undef' 检查来代替?

var MY_NAMESPACE = MY_NAMESPACE || {};

谢谢

最佳答案

这是标准的做法。参见 Matt Snider's analysis YUI YAHOO.namespace function它使用相同的检查(也查看如何使创建 namespace 变得容易)。

Matt 的代码,他从 YUI 改编到 window 对象而不是 YAHOO 对象的命名空间:

window.object_mes_namespace = function() {   
var a = arguments,
o = window,
i = 0,
j = 0,
tok = null,
name = null;

// iterate on the arguments
for (i = 0; i < a.length; i = i + 1) {
tok = a[i].split(".");

// iterate on the object tokens
for (j = 0; j < tok.length; j = j + 1) {
name = tok[j];
o[name] = o[name] || {};
o = o[name];
}
}

return o;
}

注意 o[name] = o[name] || {}; 行,与您的示例相似。

关于javascript最佳实践定义变量(命名空间)检查尚未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com