-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