定义这个对象会导致另一个对象未​​定义吗?

发布于 2024-11-04 18:17:16 字数 487 浏览 0 评论 0原文

我有这样的代码:

sys.puts(JSON.stringify(data[0].name));

var userData = {
    name: data[0].name,
    screenname: data[0].screen_name,
    id: data[0].id,
    url: data[0].url,
    description: data[0].description
 }

当我注释掉 userData 对象的创建时,一切正常,这意味着它将该值正确写入控制台。当我把它放回去时,我收到此错误:

sys.puts(JSON.stringify(data[0].name));
                    ^
TypeError: Cannot read property 'name' of undefined

有什么想法为什么会发生这种情况吗?这些都在同一个函数内。

I have this code:

sys.puts(JSON.stringify(data[0].name));

var userData = {
    name: data[0].name,
    screenname: data[0].screen_name,
    id: data[0].id,
    url: data[0].url,
    description: data[0].description
 }

When I comment out the creation of the userData object everything works fine, meaning it writes that value to the console correctly. When I put it back in I get this error:

sys.puts(JSON.stringify(data[0].name));
                    ^
TypeError: Cannot read property 'name' of undefined

Any ideas why this would be happening? This is all within the same function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我很坚强 2024-11-11 18:17:17

使用 guard 运算符 验证对象:

JSON.stringify(!!window["data"] && data.hasOwnProperty("length") && data[0].hasOwnProperty("name") && data[0].name)

在访问对象的属性之前, 另一种方法是使用 try/catch 块:

try
  {
  JSON.stringify(data[0].name)
  }
catch(e)
  {
  throw("Error")
  }

参考

Use the guard operator to validate the object before accessing its properties:

JSON.stringify(!!window["data"] && data.hasOwnProperty("length") && data[0].hasOwnProperty("name") && data[0].name)

As an alternative use a try/catch block:

try
  {
  JSON.stringify(data[0].name)
  }
catch(e)
  {
  throw("Error")
  }

References

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文