我的函数语法有问题,当我调用函数并给它的两个参数字符串时,输出总是未定义的。我不明白为什么它这样做,我也想知道这是否可以继续堆栈交换的代码审查部分,因为它没有bug。任何答案将不胜感激!
function sm(name, location){
console.log("Hello " + this.name + " from " + this.location);
}
sm("josh", "hawaii");
答案 0 :(得分:2)
function
参数不是该功能的属性,因此您无法使用this
关键字访问它们。
在你的函数this
中将引用全局window
对象,因此编译器将在window
对象中查找这些属性,如果它们不是'定义了。
只需写下:
console.log("Hello " + name + " from " + location);
<强>演示:强>
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
&#13;
答案 1 :(得分:0)
无需使用this
作为功能参数。
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
答案 2 :(得分:0)
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
&#13;
希望它可以帮到你
答案 3 :(得分:0)
您无需在此处使用this
。仅name
和location
足以引用作为函数参数传递的变量。
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");