我的JavaScript代码中有一个要求,我会动态更新全局变量,以根据这些变量的值采取特定操作。
例如:
this.decEnabled + this.properties.itemIndex = false;
这里,“this.properties.itemIndex”是整数,有助于区分项目& this.decEnabled是我想要创建的全局变量。但是我收到一个错误: 未捕获的异常:ReferenceError:无法分配给'this.incEnabled + this.properties.itemIndex'。
我想我正在尝试做一些我不应该做的事情。我想知道什么是错的。 我试图分配一个字符串值,因为上面的变量是一个字符串。还是一样的错误。 请建议。
谢谢,
斯纳
答案 0 :(得分:2)
你所写的内容中有两件事似乎没有。
JavaScript Assignment Operator(=)。
此操作符的工作原理如下:
a)从'='符号的右侧评估表达式 b)将结果分配给左侧表达式。
你的例子中的问题是(b),左边的表达式是 不可分配,因为你正在执行一个总和(表达式 涉及算术运算不可分配。)
全局变量:this.decEnabled
全局变量是一个变量,其范围是全局范围,即任何人 可以访问该变量。您可以在全局范围中定义全局变量 通过写在文档的顶部(或在范围之外)的文档 任何功能)以下内容:
var global_var;
在您的解释中,您说您正在尝试创建全局变量 'this.decEnabled'。但是,这在任何情况下都不能成为全局变量,因为 你将'decEnabled'绑定到一个范围(在这种情况下,你指的是 当前范围使用'this'运算符)。
您收到的错误来自(1)。
如果您要比较值,您要查找的相等运算符是'=='或'==='。