-3
var f1 = function(input) {
var result = 1;
return result;
}
var get_encrypted = function(func) {
var str = 'zzoon';
return function() {
return func.call(null, str);
}
}
var encrypted_value = get_encrypted(f1)();
我無法理解這段代碼。 func.call(null,str);
是什麼意思? 請總體解釋這段代碼。`func.call(null,..)`做了什麼?
這意味着,調用函數'fun'即'f1'並將其傳遞給param'str'。可以簡單地寫成'func(str);' – Tushar
參見[Function.prototype.call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)。每當有關於方法的問題時,請首先查看文檔。 – user2864740
問題的其他部分需要「學習關閉」。請參閱http://stackoverflow.com/questions/111102/how-do-javascript-closures-work?rq=1和[Eloquent JavaScript:Higher-order Functions](http://eloquentjavascript.net/05_higher_order.html)一個開始。 – user2864740