JavaScript 中的Arguments对象的用法一例.
2012-05-19 15:00
567 查看
我是在http://javascriptweblog.wordpress.com/2011/01/18/javascripts-arguments-object-and-beyond/这里看到的.
我们都知道,在JavaScript中可以对函数传递任意数目的参数,而不用管函数的在声明时形参的数量。那么有没有可能将一个函数变成严格要求形参数量和实参数量对等的函数呢?自然是有可能的,我的第一反应就是检查arguments.length和自身的length属性是否相等。事实上,原理确实就是这样。可是,能否将此功能封装成一个函数呢?请看下面闪亮登场的函数:
requireAllArgs函数将一个函数(由参数给定)转换成另外一个函数(返回的那个函数). 不知你看懂了没有.
我们都知道,在JavaScript中可以对函数传递任意数目的参数,而不用管函数的在声明时形参的数量。那么有没有可能将一个函数变成严格要求形参数量和实参数量对等的函数呢?自然是有可能的,我的第一反应就是检查arguments.length和自身的length属性是否相等。事实上,原理确实就是这样。可是,能否将此功能封装成一个函数呢?请看下面闪亮登场的函数:
var requireAllArgs= function(fn) { return function() { if (arguments.length < fn.length) { throw(["Expected", fn.length, "arguments, got", arguments.length].join(" ")); } return fn.apply(this, arguments); } } var divide = requireAllArgs(function(a, b) {return a/b}); divide(2/5); //"Expected 2 arguments, got 1" divide(2,5); //0.4
requireAllArgs函数将一个函数(由参数给定)转换成另外一个函数(返回的那个函数). 不知你看懂了没有.
相关文章推荐
- JavaScript中arguments和this对象用法分析
- JavaScript作用域、闭包、对象与原型链概念及用法实例总结
- javascript内置对象arguments详解
- JavaScript中arguments对象的使用方法
- JavaScript的apply、call以及arguments对象
- JavaScript arguments对象
- JavaScript中的arguments对象
- JavaScript 没有函数重载&Arguments对象
- JavaScript原型对象、构造函数和实例对象功能与用法详解
- JavaScript中的Error对象及其异常的用法
- [Effective JavaScript 笔记]第24条:使用变量保存arguments对象
- 深入浅析JavaScript中的arguments对象(强力推荐)
- javaScript arguments 对象使用介绍
- javascript中arguments对象
- JavaScript无类型对象一例
- Javascript中的arguments 对象
- JavaScript location对象用法详解
- javascript中clipboardData对象用法详解
- Javascript的数组与字典用法与遍历对象的属性技巧
- javascript那些事儿(二)Global对象用法