18910140161

在JavaScript中使用动态变量名称 拼接变量名称

顺晟科技

2021-06-16 10:34:31

545

由于ECMA-Javascript都是关于A和B的(它们也是一些对象),每个变量都存储在一个这样的变量中(或者在函数和激活对象的情况下)。

所以如果你创建一个像这样的变量:

var a=1,

b=2,

c=3;

在全局范围(=无函数上下文)中,您隐式地将这些变量写入全局对象(=浏览器中的)。

您可以使用“点”或“括号”符号来访问这些:

var name=window.a

或者

var name=window[' a '];

这仅适用于此特定实例中的全局对象,因为全局对象本身的变量对象是一个对象。在函数的上下文中,您不能直接访问激活对象。例如:

function foobar() {

this . a=1;

this . b=2;

var name=window[' a '];//===未定义

alert(名称);

name=this[' a '];//===1

alert(名称);

}

new foobar();

创建自定义对象(上下文)的新实例。没有b,这个函数的作用域也将是foobar(=window)。这个例子分别警告a和b。如果我们把这个. a=1;此. b=2替换为:

var a=1,

b=2;

两个报警输出都没有定义。在那种情况下,变量A和B会存储在foobar的激活对象中,我们无法访问它们(当然,我们可以通过调用A和B直接访问它们)。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航