关于apply
rbg
2008-04-30
在EXT源代码的Menu类里,87行左右有如下代码
if(mis){ this.add.apply(this, mis); } 我就不太明白this.add.apply(this, mis);和this.add(mis);有什么区别。我自己做了如下替换 if(mis){ this.add(mis); } 但是效果是不一样的 |
|
rbg
2008-05-04
明白了,用apply时,数组参数mis会自动打散为一个个的参数,如
mis=[1,2,3] 执行 this.add.apply(this, mis); 就相当于 this.add(1,2,3) 而 this.add(mis); mis是作为一个参数传入 这两种情况下add函数里解析参数的方式就不一样了 this.add.apply(this, mis); 解析参数可以用arguments; 用this.add(mis); 可以用mis[0],mis[1]来解析参数 |