javascript - 为什么变量没有定义?

标签 javascript

这里调用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/

相关文章:

javascript - 如果在 Angular 中不使用 $scope,如何使用 $apply() ?

javascript - 如何将数组附加到现有的 json javascript?

javascript - 创建带有禁用按钮的 Jquery UI 对话框

javascript - 边框触摸按钮 :active applying but not firing event

javascript - 我已经为我的谷歌地图定义了我的指针图像和指针位置。为什么不显示?

javascript - 在类的构造函数中获取类的父类的实例

javascript - 动态构造javascript对象

javascript - 强制刷新砌体网格

javascript - 在循环中使用 Jquery 检索 HTMl 元素的 PHP 变量值

javascript - HTML表格使用id获取特定的表格行