js参数传递的问题

这个是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的大致方向。感激不尽!


HUWWW
浏览 291回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript