我正在使用Luke Rodgers 的 Backbone 和 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
。
有谁知道为什么_.extend
要修改backbone.js 中的调用?