• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX  ›  程序员

js 里面 push.apply 小问题

  •  
  •   yantianqi · Feb 16, 2017 · 2691 views
    This topic created in 3550 days ago, the information mentioned may be changed or developed.
    
    function SpecialArray() {
      var values = new Array();
    
      values.push.apply(values, arguments);//这句怎么理解
      console.log(this)
    
      values.toPipedString = function() {
        return this.join("|");
      };
      return values;
    }
    

    我想问一下其中 values.push.apply(values, arguments); 这一句该怎么理解

    5 replies  •  2017-02-17 01:28:57 +08:00
    haozhang
    haozhang
    Feb 16, 2017 via iPhone❤️1
    1
    等价于 Array.prototype.push ,再去看看 apply 是干什么的就懂了
    lijsh
    lijsh
    Feb 16, 2017
    2
    这段代码的目的是把 SpecialArray 的参数按原样一个个传进 values 数组,查查 apply 的具体用法吧。
    chairuosen
    chairuosen
    Feb 16, 2017
    3
    为了把未知个数的参数透传给 push
    learnshare
    learnshare
    Feb 17, 2017 via Android
    4
    主要研究一下 apply 的用法吧
    bombless
    bombless
    Feb 17, 2017 via Android❤️2
    5
    就是把调用参数一个个 push 进去 values 呗。这种用法习惯了就好
    其实这也算是一个常见技巧,因为 arguments 不是一个 array 有点像 array ,这里就构造出一个 array 内容都是 arguments 那些内容,顺手还把产出的这个对象加了个方法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1885 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    ♥ Do have faith in what you're doing.