EmberJS - 類和例項



這只不過是在不重新定義它和透過在其中指定新屬性重新開啟該類的情況下更新該類的實現。可以使用以下方法做到這一點 −

  • reopen() − 它向例項新增屬性和方法。

  • reopenClass() − 它向新增屬性和方法.

示例

以下示例使用上面提到的方法,並在其中指定新屬性或方法 −

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” 資料夾下。

在 export 之前,接下來在底部呼叫繼承的 “reopenclass”。它執行在 reopenclass.js 檔案中建立的 reopenclass 函式 −

reopenclass();

輸出

執行 ember 伺服器,你將收到以下輸出 −

Ember.js Reopenclass Instance
emberjs_object_model.htm
廣告
© . All rights reserved.