我刚刚加入了一个一直在构建Ember应用程序的团队。它们处于开发的早期阶段,但引起我注意的是它们的所有对象都被包裹在封闭中:
(function () {
'use strict';
App.Document = DS.Model.extend({
uri: DS.attr('string'),
name: DS.attr('string'),
});
}());
我知道'使用严格的'你包裹对象。但除此之外,这真的有必要吗?我以前的Ember应用程序是使用CoffeeScript构建的,我相信它会在编译时自动完成。
另外,想知道是否有办法在一个地方执行此操作,例如清单文件,而不必在应用程序的每个文件中执行此操作。
答案 0 :(得分:2)
这通常是为了将模块彼此隔离,因为JavaScript变量的作用域是在函数级别。
如果您的团队能够,您应该将应用切换到Ember CLI,这会为您处理此类内容(此外还有更多内容)。