我希望我的代码给我"2"作为输出,但这显示我"1"作为输出.请告诉我我的代码必须做哪些更改才能给出正确的结果.
var a = 1;
function x() {
var a = 2;
function b() {
var self = this;
console.log(self.a);
}
b();
}
x();
Run Code Online (Sandbox Code Playgroud)
全局变量的特性window对象,所以self.a给你1,因为self是window.(进一步阅读:"this"关键字如何工作?).
局部变量不是任何对象的属性.无法访问它们,就好像它们是对象的属性一样.只是记录a而不是self.a.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |