这个是javascript编程精解中的 参数传递一章中的内容:
function noisy(f){
return function(arg){
console.log("calling with",arg);
var val = f(arg);
console.log("calling with",arg,"- got", val);
return val;
};
}
如果函数f接受多个参数,那么该函数只能接收第一个参数,我们可以为内部函数添加多个参数(arg1,arg2等),然后将这些参数传递给f,但问题在于noisy函数并不知道f函数需要多少参数。因为noisy函数只能传递固定数量的参数给f,因此也不能获取函数的argument.length,函数f没有办法知道调用者传递给noisy的参数个数
其中,粗体部分我有一些不理解
1.noisy函数不知道f需要多少参数。 - f函数是自己写的吧。。那为什么不知道f需要多少参数,假设f函数是function(num1,num2){},那不就是2个参数吗..
2.因此也不能获取函数的argument.length。。这是为什么呢?
题外话:这本书是大学的时候发的,题主是一步一步看着书来的,但是书中确实讲的不是很详细,不太适合初学者,关于闭包几句话就过去了。。。感觉有些吃力。可否问一下老铁们有没有适合初学者的书推荐呢?如果空余话也可写几句学习js的大致方向。感激不尽!
相关分类