为什么没有定义变量
Why the variable is not defined?
这里调用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();
是一个member/method
,object only
可以访问它,这就是为什么在这里它不起作用,因为它在second one
中起作用,因为您使用this
作为访问它的current object
。
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
访问的值。
示例中有三个作用域 - 全局作用域(包含控制台),对象作用域(包含sideLength和calcArea)和函数作用域(空)。 sideLength 是一个对象属性,变量 sideLength 未在函数作用域中定义。 您可以使用点表示法 (square.sideLength === 6) 访问对象属性,以及从对象内部(即,运行对象的方法时)通过特殊对象 "this" (this.sideLength === 6) 访问"同级"属性。
相关文章:
- 得到"全局未定义“;全局变量定义清楚时出错
- 使用变量的名称,然后为该变量定义函数
- Javascript 从 php 变量定义 getElementById()
- 使用变量定义宽度和高度
- 函数内部的JavaScript全局变量定义
- Javascript变量定义-澄清
- 为多个变量定义相同的类型,在Webstorm中识别
- 如何用变量定义一个数组,然后用一个数字填充每个数组
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- 为什么要显式将变量定义为未定义
- Gulp/Grunt 获取触笔工作表中的所有颜色变量,并将它们作为变量定义写入文件
- 是否可以在 Node.js 中为模块变量定义 SET 函数
- ES6 块范围的变量定义作为条件
- 使用 jQuery 获取由变量定义的文本输入的值
- :gt()选择器,为变量定义的索引
- 如何在ASP.NET中将Javascript变量定义为Session
- 带有用户输入的ajax请求变量定义有问题
- 使用ElasticSearch搜索变量定义字段
- 变量定义,不同的输出
- JavaScript变量定义和范围