javascript 不定参数

我知道通过arguments对象可以实现这样的功能,但是除了这个方法还有别的方法吗?,因为我发现书上并不推荐使用arguments对象,在严格模式下也做了一下限制,而且 ECMAscript 6 就不再存在arguments对象了(來源請求).

《javascript 高级程序设计第 3 版》 703 页

A.2.1 剩余参数与分布参数

Harmony 中不再有 arguments 对象,因此也就无法通过它来读取到未声明的参数

附:
图片描述
版本:2012 年 (其中對 ES6 的描述可能已過時)

回复
阅读 13.3k
4 个回答

严格模式只是限制不能用arguments.callee arguments.caller,不能用arguments作为变量名,并没有限制arguments作为不定参数的应用,在ES6普及之前,没有arguments的替代品

印象中并没有,可以将所有参数放到一个对象里面传这个对象进函数达到类似的效果,比如:

function fn(obj) {
    switch(obj.length){
        case 3:
            return obj.length;
            break;
        default:
            return false;
        break;
    }
}

fn({
    first: 1,
    second: 2,
    third: 3
});

当然到了 ES6 就支持你说的不定参数啦,参考资料:http://es6.ruanyifeng.com/#docs/function

es6就更方便啦

function foo(...args) {
    console.log(args);
}

我一般这样写

function log(o){
   console.log(o.xx)
}

log({
   o.xx
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏