我在asp.net MVC 4项目中使用BundleTransformer.Yui.Minifiers.YuiJsMinifier,但我认为这是YUI压缩器bug ...
...
var varName='...';
alert(varName); //alert('...')
$.ajax({
url: url,
success: function (t, s) {
alert(varName); //alert(t);
}
当BundleTrasformer缩小&使用YUI压缩器变量varName变为t来模糊这段代码,并且函数参数t保持为t,所以varName得到的覆盖用t ... 结帐注释警告... 我的问题是我应该更改压缩器,还是将所有一个和两个字母变量重命名为更长的变量?难道我做错了什么? 如果我只改变一行代码,一切都好,所以我很确定它是YUI压缩器bug
...
var varName='...';
alert(varName);
$.ajax({
url: url,
success: function (data, s) {
alert(varName);
}
PS 我知道有一个字母变量名称是不好的做法,但它仍然是YUI压缩器bug ... PPS: 我在succes函数中使用了eval。 (知道这也不是好习惯,但是,YUI压缩器不应该破坏代码:/)
答案 0 :(得分:0)
varName
变量是全局变量,因此不会处理它的名称。
您需要将其设为本地。为此,将代码包装在IIFE(立即调用的函数表达式)中:
(function(){
...
var varName='...';
alert(varName);
$.ajax({
url: url,
success: function (data, s) {
alert(varName);
}
})();