gpt4 book ai didi

javascript - 怎么了?通过字符串定义 JavaScript 命名空间

转载 作者:行者123 更新时间:2023-11-30 10:39:22 24 4
gpt4 key购买 nike

我使用以下代码定义一个名为 com.foo 的新命名空间

function extendNamespace(ns, ns_string) {
var parts = ns_string.split('.');
var parent = ns;

for (var i = 0; i < parts.length; i++) {
//create a property if it doesnt exist
if (typeof parent[parts[i]] == 'undefined') {
parent[parts[i]] = {};
}
parent = parent[parts[i]];
}
return ns;
}

var com = {};
extendNamespace(com, "com.foo");

console.log(com); // OK (even has an object called "foo"!!)
console.log(com.foo); // Undefined ???

console.log(com) 的第一次调用在控制台中清楚地显示了一个新对象“com”已创建,其中有一个名为“foo”的对象。

到目前为止,还不错。

第二次调用 console.log(com.foo); 虽然返回“undefined”。

什么给了?

最佳答案

The first call of console.log(com) clearly shows me in console that a new object "com" has been created which has an object called "foo".

没有。它有一个名为 com 的属性,其值是一个具有名为 foo 的属性的对象。

当您只想使用 foo 扩展 com 时,您正在使用 com.foo 扩展它。

关于javascript - 怎么了?通过字符串定义 JavaScript 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013469/

24 4 0
文章推荐: php - jQuery 在 AJAX 调用中发布版本
文章推荐: javascript - 最佳实践 : How to authenticate/authorize AJAX Calls on the server
文章推荐: Javascript:从 javascript 更改