为什么我在使用窗口变量查找索引时遇到错误?

时间:2017-02-12 05:33:16

标签: javascript jquery angularjs browser window

这很奇怪,我试图使用我定义的变量:

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

在我使用的功能中我有这个:

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

当我执行此操作时,我收到错误:Uncaught TypeError: Cannot read property 'variable' of undefined

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

window.params = { ... }

错误消失,功能运行正常!为什么呢?

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

感谢。

1 个答案:

答案 0 :(得分:1)

在向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