0
我是JS新手,想學習。該規範要求如下: 編寫一個函數,該函數將另一個函數*作爲參數並創建一次只能被調用一次的函數版本。重複調用修改的函數將不起作用,從原始調用返回值。你怎麼能不使用閉包來做到這一點?它甚至有可能嗎?你怎麼能用閉包來做到這一點? *注意:這個原始輸入功能不應該有任何參數。在Javascript中執行簡單閉包時出現運行時錯誤
這是我有:
var divide = function() {
var x = 2;
var y = 6;
return y/x;
}
var mainFunc = function (func) {
return func(){
return y/x + 1;
}
}
var output = mainFunc(divide);
console.log(divide());
console.log(output());
console.log(output());
我得到一個「意外令牌{」出錯「返回FUNC(){」我不太明白我做錯了什麼?根據規範,我將divide()傳遞給mainFunc()並將其設置爲參考變量輸出。然後我多次調用divide()和output()來測試閉包是否工作,並且修改過的函數只發生一次。我錯過了什麼或不理解?
感謝您的幫助。
回報FUNC(其結果){//這是一個語法錯誤,{是這裏意外的標記 – 2014-09-24 19:37:20
語法錯誤怎麼樣?我將divide()傳遞給mainFunc(),所以func()應該採用divide的屬性,對嗎? – rahul2001 2014-09-24 19:44:58
如果你解釋你想要達到的目標,或許它可能有所幫助。用語言,而不是代碼。 – 2014-09-24 19:48:28