这里调用calcArea函数,函数作用域应该在它定义的作用域内,但是它的作用域有变量sideLength,为什么会报错?
var square = {
sideLength: 6,
calcArea: function () {
console.log(sideLength * sideLength);
}
};
square.calcArea();
你能帮我吗?
和
var square = {
sideLength: 6,
calcArea: function () {
console.log(this.sideLength * this.sideLength);
}
};
square.calcArea();
没关系,抱歉我的英语不好。
最佳答案
这里:
var square = {
sideLength: 6,
calcArea: function () {
console.log(sideLength * sideLength);
}
}
square.calcArea();
是一个成员/方法
,只能由对象访问
,这就是为什么这里它不可以访问的原因就像在第二个
中一样,它可以工作,因为您使用this
作为当前对象
来访问它。
var square = {
sideLength: 6,
calcArea: function () {
console.log(this.sideLength * this.sideLength);
}
}
square.calcArea();
it works because you are using this.sideLength.
您可以使用console.log(square.sideLength);
查看square.sideLength=6
访问的值。
关于javascript - 为什么变量没有定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199360/