Emberjs-reopenclass-instance

提供:Dev Guides
移動先:案内検索

EmberJS-クラスとインスタンス

これは、クラス定義を再定義せずにクラス実装を更新し、新しいプロパティを指定してクラスを再度開くだけです。 これは、次の方法を使用して可能です-

  • * reopen()*-プロパティとメソッドを_instances_に追加します。
  • * reopenClass()*-プロパティとメソッドを_classes._に追加します。

次の例では、上記のメソッドを使用し、その中に新しいプロパティまたはメソッドを指定します-

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();

出力

エンバーサーバーを実行すると、次の出力が表示されます-

Ember.js Reopenclassインスタンス