我遇到了函數語法的問題,當我調用函數並給出它的兩個參數字符串時,輸出始終未定義。我不明白爲什麼要這樣做,我也想知道這是否可以繼續進行堆棧交換的代碼審查部分,因爲它沒有bug。任何答案將不勝感激!函數參數返回undefined
function sm(name, location){
console.log("Hello " + this.name + " from " + this.location);
}
sm("josh", "hawaii");
我遇到了函數語法的問題,當我調用函數並給出它的兩個參數字符串時,輸出始終未定義。我不明白爲什麼要這樣做,我也想知道這是否可以繼續進行堆棧交換的代碼審查部分,因爲它沒有bug。任何答案將不勝感激!函數參數返回undefined
function sm(name, location){
console.log("Hello " + this.name + " from " + this.location);
}
sm("josh", "hawaii");
無需使用this
的功能參數。
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
的function
參數不是函數的性質,所以你不能用this
關鍵字訪問它們。
而在你的功能this
將涉及全球window
對象,編譯器會尋找window
對象內這些屬性,如果沒有定義,他們將觸發一個例外。
只要寫:
console.log("Hello " + name + " from " + location);
演示:
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
希望它可以幫助你
你不需要在這裏使用this
這裏。只需要name
和location
就足以將傳遞的變量作爲函數參數。
function sm(name, location){
console.log("Hello " + name + " from " + location);
}
sm("josh", "hawaii");
'this.name'沒有了'name'您在參數中傳遞的'this'是指'Window'的'name'和'location'財產。只需使用'name'和'location'而不用'this'。 –