目录

重新打开类和实例(Reopening Classes and Instances)

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

  • reopen() - 它为instances添加属性和方法。

  • reopenClass() - 它为classes.添加属性和方法classes.

例子 (Example)

以下示例使用上面提到的方法并指定其中的新属性或方法 -

import Ember from 'ember';
export default function() {
   //reopen() method for instances
   var Person = Ember.Object.extend ({
      firstName: null,
      lastName:  null,
   });
   //adding new variable to the Person class
   Person.reopen ({
      middleName: 'Smith',
   });
   document.write('Middle Name: '+Person.create().get('middleName'));
   document.write("<br>");
   //reopenClass() method for classes
   Person.reopenClass ({
      //creating new function for class Person
      openClass: function() {
         return Person.create({isMan: true});
      }
   });
   document.write('isMan: '+Person.openClass().get('isMan'));
}

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

import reopenclass from './reopenclass';

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

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

reopenclass();

输出 (Output)

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

Ember.js Reopenclass Instance
↑回到顶部↑
WIKI教程 @2018