函数参数返回undefined

时间:2017-06-19 14:48:31

标签: javascript

我的函数语法有问题,当我调用函数并给它的两个参数字符串时,输出总是未定义的。我不明白为什么它这样做,我也想知道这是否可以继续堆栈交换的代码审查部分,因为它没有bug。任何答案将不胜感激!

function sm(name, location){
  console.log("Hello " + this.name + " from " + this.location);
}

sm("josh", "hawaii");

4 个答案:

答案 0 :(得分:2)

function参数不是该功能的属性,因此您无法使用this关键字访问它们。

在你的函数this中将引用全局window对象,因此编译器将在window对象中查找这些属性,如果它们不是'定义了。

只需写下:

console.log("Hello " + name + " from " + location);

<强>演示:

&#13;
&#13;
function sm(name, location){
  console.log("Hello " + name + " from " + location);
}

sm("josh", "hawaii");
&#13;
&#13;
&#13;

答案 1 :(得分:0)

无需使用this作为功能参数。

function sm(name, location){
  console.log("Hello " + name + " from " + location);
}

sm("josh", "hawaii");

答案 2 :(得分:0)

&#13;
&#13;
function sm(name, location){
  console.log("Hello " + name + " from " + location);
}

sm("josh", "hawaii");
&#13;
&#13;
&#13;

希望它可以帮到你

答案 3 :(得分:0)

您无需在此处使用this。仅namelocation足以引用作为函数参数传递的变量。

function sm(name, location){
  console.log("Hello " + name + " from " + location);
}

sm("josh", "hawaii");