gpt4 book ai didi

javascript - 对象为空但对象属性不是?

转载 作者:行者123 更新时间:2023-11-28 20:28:08 25 4
gpt4 key购买 nike

什么情况下一个对象可能是空的,但该对象的属性不是空的?

代码:

console.log('type: '+typeof(widget));
console.log('obj: '+JSON.stringify(widget));
console.log('data: '+JSON.stringify(widget.data));

输出:

[INFO] :   type: object
[INFO] : obj: {}
[INFO] : data: {"index":2}

此外,for (var prop in widget) 不会执行,并且尝试调用 widget.hasOwnProperty('data') 会引发错误。

编辑添加:我应该指定这是在 Titanium 中,而不是直接 JS,因此 console 调用是 Titanium 调用,而不是 Firebug 等。

最佳答案

如果 data 不是可枚举属性,则它不会被字符串化。这可能就是这里发生的情况。

参见Object.defineProperty更深入地了解不可枚举属性及其创建。

请注意,您可以更有效地使用控制台:

console.log(typeof(widget), widget);
console.dir(widget);

它不仅仅适用于字符串。

顺便说一句,我今天刚刚编写了一个字符串生成器,没有考虑可枚举属性: JSON.prune .

关于javascript - 对象为空但对象属性不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948518/

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