javascript - 为什么使用窗口变量查找索引时出现错误?

标签 javascript jquery angularjs browser window

这很奇怪,我正在尝试使用我定义的变量:

window.params['variable'] = { ... };

在我正在使用的函数中,我有这个:

function q()
{
 ...
 // for example
 return new Chart( canvas, window.params['variable'] );
 ...
}

当我执行此操作时,我收到错误:Uncaught TypeError:无法读取未定义的属性“变量”

但是,令人难以置信(对我来说),当我将参数定义为:

window.params = { ... }

错误消失,函数运行正常!为什么?

(显然,我首先将 window.params['variable'] 替换为 window.params,但我相信这是等效的)

谢谢。

最佳答案

在向 params 添加属性之前,您需要先定义 params。 所以正确的做法是

window.params = {};
window.params['variable'] = { };

window.params = {
  'variable' : {}
};

然后

function q(){
 ...
 // for example
 return new Chart( canvas, window.params['variable'] );
 ...
}

您将在这里获得更多相关信息: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Object_initializer

关于javascript - 为什么使用窗口变量查找索引时出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184532/

相关文章:

angularjs - 带预渲染的 Angular.js

javascript - 如何在QML中创建延迟函数?

jquery - 如何找到特定文本后面的 anchor

javascript - Jqplot,分割动态图

javascript - jQuery 选择值始终为 0

javascript - Firefox 中是否有某种组合键会干扰 Javascript/jQuery?

angularjs - Angular 1.5 组件属性存在

javascript - 将计算结果设置为 ng 样式标记 Angular.js 中的百分比

java - BIRT 报表设计器看不到我的 java 类

javascript - 由 window.location.href 调用时 SQL 查询不起作用