jquery源码中的merge函数

jquery源码中的merge函数中,我发现不加上first.length = i这句也是可以得出正确答案的,加上这句的作用是什么呢? 去掉了的话会不会有什么影响呢?

function merge( first, second ) {
        var l = second.length,
            i = first.length,
            j = 0;
        // console.log(l);

        if (typeof l === "number") { //json.length = undefinded
            for (; j < l; j++) {
                first[i++] = second[j];
            }
        } else {
            while (second[j] !== undefined) {
                first[i++] = second[j++];
            }
        }
        //first.length = i;  //手动改变数组长度,改变 ??不要这步也可以

        return first;
    }
阅读 2k
1 个回答

因为有些蛋疼的人喜欢merge一些奇怪的东西

merge({0: 0,length: 1}, [1,2,3])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题