【问题标题】:AngularJS "unexpected token [" initializing array of objectsAngularJS“意外令牌[”初始化对象数组
【发布时间】:2017-07-11 04:40:37
【问题描述】:

这有什么问题:

  var a = "1";
  var b = {};
  var b[a] = 'test';

根据this SO question,以上是有效的。但是var b[a] = 'test' 在 AngularJS (v1) 中产生了这个错误:

Uncaught SyntaxError: Unexpected token [

【问题讨论】:

  • 把第三行的var去掉就和那个问题一样了。
  • 卫生署!我正盯着它看。

标签: javascript angularjs


【解决方案1】:

这一行:

var b[a] = 'test';

无效,因为字符 [] 不允许出现在变量名中。

如果您不希望在该行上声明一个新变量,而只是为对象b 分配一个键/值对,您可以删除var

b[a] = 'test'; //b now equals { "1": "test" }

【讨论】:

  • 是的,我实际上在初学者中经常看到这样的东西。 var 仅用于声明/“创建”新变量。虽然b[a] 当前不存在,但它不是变量;它是属于变量b 的对象的属性。以同样的方式,在将值分配给现有 var 时,您不需要 var,例如a = 2;.
猜你喜欢
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
相关资源
最近更新 更多