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);
是什么意思?
请整体解释这段代码。
答案 0 :(得分:0)
首先,这是对Function.prototype.call()的引用。
基本上,call()
中的第一个参数是您希望在被调用函数中使用的this
对象。
在这种情况下,被调用的函数是f1
,代码为:get_encrypted(f1)
。
因此get_encrypted
将函数f1
作为参数,然后调用f1
,this
为null
(当null
为f1
时作为第一个参数传递)。现在this
可以在其代码中使用this
,但在这种情况下,由于null
为f1
,因此不值得。 'zzoon'
也将input
作为input
的第二个参数,但忽略了get_encrypted
。
当get_encrypted(f1)();
被代码f1
调用时,它返回函数f1
的结果(返回结果的函数),其中null
使用或者可能使用this
作为1
。此结果为fileDownload
。