Javascript 对象内部的变量绑定
在以下代码中:Javascript 对象内部的变量绑定,javascript,Javascript,在以下代码中: var a = 1; var boat = { a:2, innerBoat: {a:3, print(){console.log(a);}, }, }; boat.innerBoat.print(); //output: 1 我不明白为什么console.log(a);in print方法返回值1。 另外,boat引用的对象
var a = 1;
var boat = { a:2,
innerBoat: {a:3,
print(){console.log(a);},
},
};
boat.innerBoat.print(); //output: 1
我不明白为什么console.log(a);in print方法返回值1。另外,boat引用的对象的大括号{}是否在运行时在堆栈中创建了一个新的私有执行上下文?(我知道只有函数调用才能在运行时创建新的私有执行上下文,但对象创建让我感到困惑,因为它们最初是构造函数调用:
var boat = new Object();
在javascript中,
对象
实际上只是一个数据集合,就像许多其他语言中的词典一样
var boat=new Object();
只是创建了一个空对象,就像您创建了var boat={};
如果您正在寻找更类似的东西,您可以尝试使用ES6类
var a=0
班船{
构造函数(){
这是a=1;
}
打印(){
console.log(this.a);
}
}
var船=新船()
boat.print();//输出:2
在javascript中,对象实际上只是一组数据,就像许多其他语言中的词典一样
var boat=new Object();
只是创建了一个空对象,就像您创建了var boat={};
如果您正在寻找更类似的东西,您可以尝试使用ES6类
var a=0
班船{
构造函数(){
这是a=1;
}
打印(){
console.log(this.a);
}
}
var船=新船()
boat.print();//输出:2
我不明白为什么console.log(a);in print方法返回值1
它记录变量的值a
它周围的各种对象的属性,也有名称a
不是变量。它们只能作为对象的属性引用
常数a=1;
常量对象={
a:2
};
控制台日志(a);
console.log(object.a)
我不明白为什么console.log(a);in print方法返回值1
它记录变量的值a
它周围的各种对象的属性,也有名称a
不是变量。它们只能作为对象的属性引用
常数a=1;
常量对象={
a:2
};
控制台日志(a);
console.log(object.a)
您声明了全局变量a,并在console.log中返回。使用boat.a和return 2,使用boat.innerBoat.a和return 3,使用this.a和return 3。您声明了全局变量a,并在console.log中返回。使用boat.a和return 2,使用boat.innerBoat.a和return 3,使用this.a和return 3。