我正在使用 jQuery 插件并通过 Microsoft Ajax Minifier 运行它。我的脚本对我来说效果很好,但现在我遇到了这个插件的问题。问题是插件使用字符串按名称调用函数:
var s = (getCachedSortType(table.config.parsers, c) == "text") ? ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? "sortNumeric" : "sortNumericDesc");
注意“sortNumeric”和“sortNumericDesc”。这调用了这些函数:
function sortNumeric(a, b) {
return a - b;
}
function sortNumericDesc(a, b) {
return b - a;
}
这是调用这些函数的唯一位置,因此 IDE VS2010 不会认为这些函数是从任何地方调用的……它们是通过上面的代码有条件地调用的。
**这是问题**
当它被缩小时,函数的字符串名称会保留,但函数会被删除,因为它不会被引用。
有没有办法调整设置缩小器不这样做?
我也看到它改变了函数的名称,所以
function testFunctionName(a,b)
会成为
function a
这也会导致像我这样的情况出现问题......请注意,我知道这样硬编码函数名称是糟糕的代码设计。就像我说的那样,这是我正在使用的插件。我会接受一种直接调用函数而不是通过字符串调用函数的解决方案,但我总是对修改插件犹豫不决。