日期:2014-05-16 浏览次数:20422 次
function f(x, y, z)
{
if (arguments.length != 3)
{
throw new Error("参数不正确…");
}
}
function check(args) {
var actual = args.length;
var expected = args.callee.length;
if {actual != expected) {
throw new Error("Wrong number of arguments: expected: " +
expected + actually passed " + actual);
}
)
function check(args) {
var actual = args.length;//为f函数中的arguments对象,实际传递给f的参数个数
var expected = args.callee.length;//因为传递的是arguments对象,所以callee得到的就是函数f,而函数也是有length的,为(...)里面定义的参数的个数,只读,和arguments的length不一样
if (actual != expected) {//实际传递的个数和f函数()中定义的个数不一样,就抛出错误。如f(1,2)少了一个参数或者f(1,2,3,4)多了一个参数,f(1,2,3)才是正确的
throw new Error('Wrong number of arguments:expected:' + expected + ";actually passed" + actual);
}
}
function f(x, y, z) {
check(arguments);//传递f函数的arguments对象作为check函数的参数
return x + y + x;
}