顺晟科技
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直接访问它们)。
02
2022-09
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06