Chr*_*ris 10 javascript extjs sencha-touch
使用Ext.js或sencha,执行以下操作有什么意义:
Ext.apply(app.views, {
contactsList: new app.views.ContactsList(),
contactDetail: new app.views.ContactDetail(),
contactForm: new app.views.ContactForm()
});
Run Code Online (Sandbox Code Playgroud)
与此标准javascript相反:
app.views.contactsList = new app.views.ContactsList();
app.views.contactDetail = new app.views.ContactDetail();
app.views.contactForm = new app.views.ContactForm();
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?
Bri*_*kau 11
Ext.apply通常更方便(如果需要更少的激活链查找,可能更有效,如在您的示例中,尽管这是一个小问题).还有一个变体Ext.applyIf只应用源对象中不存在于目标对象中的成员,这更加有用,因为它可以避免一大堆人工if()检查.这非常有用,例如,将默认值应用于可能已分配用户或应用程序定义属性的配置对象时.
给未来读者的一个注释,看看接受的答案:Ext还有Ext.extend一个实际上意味着"继承"一个类,而不是Ext.apply[If]仅仅将一个对象实例合并到另一个,或者Ext.override覆盖(没有子类化)一个类定义.根据您的需要,有很多选择.
它主要是作为接受对象作为参数的代码的便捷方法,并且需要合并它.合并对象是JavaScript中的常见用例,这种类型的帮助程序由大多数框架实现.($.extend在jQuery中,Object.extend在Prototype中,Object.append在MooTools中等)
在您的情况下,除了提供更易读的代码之外,几乎没有什么区别.