我是学习javascript的初学者
测试“ this”关键字 下面的showWidth函数显示“未定义”,但是当我将“ let”更改为“ var”时,它按预期显示600。现在,我不确定我是否完全理解let和var :(。之间的区别。请通过下面给出的示例帮助我理解。谢谢您的时间。
let width = 600; // declared global variable
let shape = {
width: 300 // property inside an object
};
let showWidth = function() {
document.write(this.width);
}
showWidth(); // undefined with let, 600 with var. I expected 600 in both cases
答案 0 :(得分:0)
因此,问题是您尝试使用函数打印宽度,但是您的函数没有属性width。使用此功能时,您是在说这(即功能),因此,如果该功能不具有width属性,则会显示未定义。有一些方法可以做到。
第一个是:
var showWidth = function() {
this.width = 500;
document.write(this.width);
}
showWidth();
第二个选项:
var shape = {
width: 200
};
var showWidth = function(obj) {
document.write(obj.width);
}
showWidth(shape);
第三种选择:
var width = 200;
var showWidth = function(value) {
document.write(value);
}
showWidth(width);