search

Home  >  Q&A  >  body text

javascript 不定参数

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

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

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

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

附:

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

PHPzPHPz2902 days ago634

reply all(4)I'll reply

  • 高洛峰

    高洛峰2017-04-10 14:54:17

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:54:17

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

    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

    reply
    0
  • 迷茫

    迷茫2017-04-10 14:54:17

    我一般这样写

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

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:54:17

    es6就更方便啦

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

    reply
    0
  • Cancelreply