我希望這段代碼回傳未定義,但它回傳函式,任何人都可以告訴我,因為我是 js 新手。
function createGreeter(greeting){
function greet(){
console.log(greeting,name)
}
return greet
}
let g1=createGreeter('Good Morning')
console.log(typeof g1)
let g2=createGreeter('Good Evening')
uj5u.com熱心網友回復:
您在函式內部回傳greet函式本身
如果你想將 greet 函式的結果存盤在 var 中,那么你必須呼叫它:
而不是return greet你應該return greet()
uj5u.com熱心網友回復:
代碼return greet在第 5 行顯示。 的值greet是函式greet本身。您可能希望將第 5 行更改為return greet(),這將執行該greet()函式,然后回傳 的回傳值greet(),它本身就是undefined。
uj5u.com熱心網友回復:
所以看起來你想創建一個接受問候但回傳另一個接受名稱的函式的函式(同時在其回傳時在其外部詞法環境中維護指向變數(問候)的指標)并回傳加入這些的結果呼叫時的字串。
// `createGreeter` accepts a string and
// returns a new function that accepts a name
// and when that function is called ties both strings together
function createGreeter(greeting) {
return function (name) {
return `${greeting}, ${name}.`;
}
}
// Both of these return a function that accepts a name
const goodevening = createGreeter('Good evening');
const expectingyou = createGreeter('I\'ve been expecting you');
// And now we just need to call those functions with the name
console.log(goodevening('Blofeld'));
console.log(expectingyou('Mr. Bond'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489210.html
標籤:javascript
