【发布时间】:2012-06-21 00:40:35
【问题描述】:
我正在使用Luke Rodgers' Backbone and Underscore externs,但无法弄清楚为什么_.extend 在编译输出中被修改。
例如,在 Backbone 0.9.2 中,以下代码 (193:195):
if (defaults = getValue(this, 'defaults')) {
attributes = _.extend({}, defaults, attributes);
}
编译为:
if(c=r(this,"defaults"))a=f.extend({},c,a);
我使用了以下编译命令:
java -jar compiler.jar
--externs backbone-0.9.2-externs.js
--externs underscore-1.3.3-externs.js
--compilation_level ADVANCED_OPTIMIZATIONS
--js underscore-1.3.3.js
--js backbone-0.9.2.js
--js_output_file compiled.js
如果我包含另一个 JavaScript 文件:
--js test.js
包含以下内容:
_.extend({}, {name: 'test'});
compiled.js 中未修改。
有人知道为什么要修改backbone.js 中对_.extend 的调用吗?
【问题讨论】:
-
愚蠢的问题 - 有用吗?
-
上面的代码只是一个突出问题的小例子。在我的应用程序中,我收到错误:“未捕获的 TypeError:无法调用未定义的“扩展”方法”、“未捕获的 TypeError:无法调用未定义的“每个”方法、“未捕获的 ReferenceError:未定义主干”,...
标签: javascript backbone.js underscore.js google-closure-compiler