EmberJS - 类和实例

这只不过是在不重新定义类实现的情况下更新类实现,并通过在其中指定新属性来重新打开类。这可以通过使用以下方法实现 −

  • reopen() − 它向实例添加属性和方法。

  • reopenClass() − 它向添加属性和方法。

示例

以下示例使用上述方法并在其中指定新属性或方法 −

import Ember from 'ember';

export default function() {
   //实例的reopen()方法
   var Person = Ember.Object.extend ({
      firstName: null,
      lastName:  null,
   });

   //向 Person 类添加新变量
   Person.reopen ({
      middleName: 'Smith',
   });

   document.write('Middle Name: '+Person.create().get('middleName'));
   document.write("<br>");

   //类的 reopenClass() 方法
   Person.reopenClass ({
      //为 Person 类创建新函数
      openClass: function() {
         return Person.create({isMan: true});
      }
   });

   document.write('isMan: '+Person.openClass().get('isMan'));
}

现在打开 app.js 文件并在文件顶部添加以下行 −

import openingclass from './reopenclass';

其中,reopenclass 是指定为"reopenclass.js"并在"app"文件夹下创建的文件的名称。

接下来在导出之前,在底部调用继承的"reopenclass"。它执行在 reopenclass.js 文件中创建的 openingclass 函数 −

reopenclass();

输出

运行 ember 服务器,您将收到以下输出 −

Ember.js 重新打开类实例

emberjs_object_model.html