arguments[0]() 笔试题的坑

     var length = 10;
        function fn(){
            alert(this.length)
        }
        var obj = {
            length: 5,
            method: function(fn) {
         fn();// 10 arguments[
0]()//2 } } obj.method(fn,length)

这里为什么会输出2呢,实际上拆开来看,arguments[0]();就是fn();但是这里的this确是指向argument对象。

所以arguments对象里面的length属性是指向参数的个数,那么这里就是2.所以一定要注意这个this啊!

posted @ 2016-09-12 22:07  DJL箫氏  阅读(781)  评论(0编辑  收藏  举报