为什么参数的顺序很重要
Why does order of parameters matter?
我正在玩函数式编程,并注意到当我把函数放在其他参数之前,我的函数将不再工作,为什么会这样?
function forEach(array, action){
for (var i = 0; i < array.length;i++){
action(array[i]);}
}
forEach(["bbq","is","not","phoot"],alert);
不工作
function forEach(action, array){
for (var i = 0; i < array.length;i++){
action(array[i]);}
}
forEach(["bbq","is","not","phoot"],alert);
参数的顺序很重要,因为函数无法猜测哪个参数是数组,哪个参数是操作。
您可以根据参数的类型做出决策,从而使函数更智能一些。例如:
function forEach() {
var array = typeof arguments[0] === 'function' ? arguments[1] : arguments[0];
var action = typeof arguments[0] === 'function' ? arguments[0] : arguments[1];
for (var i = 0; i < array.length;i++) {
action(array[i]);
}
}
它处理两种情况:
forEach(["bbq","is","not","phoot"], alert);
forEach(alert, ["bbq","is","not","phoot"]);
在JSFiddle上看到它。请注意,这段代码很容易出错,只是为了演示。
相关文章:
- 如何使用参数按顺序运行三个任务
- 如何跟踪有序列表中的顺序,该列表具有一个循环列表项,提供不同的参数
- 为什么AMD以与javascript性质相反的顺序定义其可选参数
- 记住比较器函数的参数顺序的技巧是什么
- JavaScript 是否对函数参数有明确的计算顺序?
- 当参数不按特定顺序排列时,Javascript重新加载具有参数值更改的页面
- 如何在类似C#的Javascript中传递手动参数顺序
- Dojo函数参数顺序
- 以不正确的顺序从绑定中删除2.0参数
- 如何确定参数顺序's是通过.bind()添加的
- 在调用之前按顺序完成所有函数参数
- 按不同顺序绑定参数
- Javascript中函数参数的求值顺序是什么?
- -父组件回调如何通过子道具接收参数顺序/值
- 为什么参数的顺序很重要
- 执行多个函数,参数将在ajax成功时按顺序触发
- 在JavaScript语句中多次修改变量和函数参数的求值顺序
- 在Node Js中,使用不同的参数顺序多次运行一个函数
- 如何记录JsDoc中具有多个参数顺序选项的函数
- JavaScript:将函数作为参数传递给另一个函数,代码以我预期的另一种顺序调用