0

我在javascript中有以下代码:

Array.prototype.any = function (test) {
    if (!arguments.length)
        return !!this.length;

    var arguments = Array.prototype.slice.call(arguments, 1);
    var functionTest = typeof test == "function" ? test : function (x) {return x == test;};

    for (var i = 0, len = this.length; i < len; i++)
        if (functionTest.apply(this[i], [this[i]].concat(arguments)))
            return true;

    return false;
};

当我使用Asp.net bundle 缩小 JS 文件时,保留字“ arguments ”变成了一个 char 变量,就像字母“i”一样,但是我需要变量 arguments,因为它存储了函数的参数。

你可以在下面看到缩小后:

Array.prototype.any=function(n){var i,r,t,u;if(!i.length)return!!this.length;for(i=Array.prototype.slice.call(i,1),r=typeof n=="function"?n:function(t){return t==n},t=0,u=this.length;t<u;t++)if(r.apply(this[t],[this[t]].concat(i)))return!0;return!1}

有人知道我怎样才能防止这种变化?

4

1 回答 1

0

我不认为将参数分配给参数是一个好主意:)

删除var arguments = Array.prototype.slice.call(arguments, 1);并替换为var args = Array.prototype.slice.call(arguments, 1);.

于 2013-07-27T10:35:32.740 回答