Javascript——arguments的shift问题谈方法“借用”

今天本来运行了打算这样的方法

arguments.shift()

(shift方法是删除数组的第一个元素,例如var arr=[1,2,3,4,5]执行var a=arr.shift();之后,a的值为1,arr的值为[2,3,4,5]。)

参考w3cschool:http://www.w3school.com.cn/jsref/jsref_shift.asp

 

在IDEA中居然还有这样的代码提示

 

结果抛出了这样的异常

 

原来是arguments不是真正的数组,不支持shift,

不过我们可以从支持shift方法的Array对象上“借用”shift方法。

具体实现代码如下:

Array.prototype.shift.apply(arguments)

 这里用apply改变了shift方法中的this指针,这样让argument也支持了shift

posted @ 2016-03-29 23:56     阅读(1122)  评论(0编辑  收藏  举报