0

我在我的 JavaScript 代码中有一个要求,我动态更新全局变量以根据这些变量的值执行特定操作。

例如:

this.decEnabled + this.properties.itemIndex = false;  

在这里,“this.properties.itemIndex”是有助于区分项目的整数,而 this.decEnabled 是我要创建的全局变量。但是我收到一个错误:未捕获的异常:ReferenceError:无法分配给'this.incEnabled + this.properties.itemIndex'。

我想我正在尝试做一些我不应该做的事情。我想知道怎么了。我也尝试分配一个字符串值,因为上面的变量是一个字符串。还是同样的错误。请建议。

谢谢,
斯内哈

4

1 回答 1

2

你写的东西有两点看起来根本不对。

  1. JavaScript 赋值运算符 (=)。

    该运算符通过以下方式工作:

    a) 从“=”符号的右侧计算表达式。
    b) 将结果分配给左侧表达式。

    您的示例中的问题是(b),左侧的表达式不可赋值,因为您正在执行求和(涉及算术运算的表达式不可赋值)。

  2. 全局变量:this.decEnabled

    全局变量是其作用域为全局作用域的变量,即任何人都可以访问该变量。您可以通过在文档顶部(或任何函数范围之外)编写以下内容来在文档的全局范围内定义全局变量:

    var global_var;
    

    在您的解释中,您说您正在尝试创建全局变量“this.decEnabled”。但是,这在任何情况下都不能是全局变量,因为您将“decEnabled”绑定到一个范围(在这种情况下,您通过使用“this”运算符来引用当前范围)。

您收到的错误来自 (1)。

如果您尝试比较值,您正在寻找的相等运算符是“==”或“===”。

于 2013-02-16T10:48:39.730 回答