Native: Class

MooToolsフレームワークの基本クラスです。

Classメソッド: constructor

構文:

var MyClass = new Class(properties);

引数:

  1. properties - (オブジェクト) クラスに適用される一連のプロパティ。ExtendsやImplements、initializeなどの特別なプロパティ(下を参照)も受け付けます。

プロパティ: Extends

  • (クラス) このクラスが拡張されてできるクラス。
このクラスのプロパティはExtendsクラスと同じ名前を持ち、上書きしたメソッドを呼び出すことができます。

プロパティ: Implements

  • (オブジェクト) 渡されたオブジェクトのプロパティがこのClassにコピーされます。
  • (クラス) 渡されたクラスのプロパティがターゲット・クラスにコピーされます。
  • (配列) オブジェクトやクラスからなる配列で、このプロパティがクラスにコピーされます。
ImplementsはExtendsと似ていますが、継承なしでプロパティを上書する点が異なります。 複数のクラスに対してプロパティの初期値を適用するときに役立ちます。

プロパティ: initialize

  • (関数) initialize関数は新しいインスタンスが作成されたときに、このクラスのコンストラクタとなります。

戻り値:

  • (クラス) 新たに作られたクラス。

例:

クラスの場合:

var Cat = new Class({
    initialize: function(name){

        this.name = name;
    }
});
var myCat = new Cat('Micia');

alert(myCat.name); //アラート'Micia'

var Cow = new Class({

    initialize: function(){
        alert('moooo');
    }
});

var Effie = new Cow($empty); //'moooo'をアラートしません。メソッドが$empty関数によって上書きされているからです。

Extendsの場合:

var Animal = new Class({
    initialize: function(age){

        this.age = age;
    }
});
var Cat = new Class({

    Extends: Animal,
    initialize: function(name, age){
        this.parent(age); //Animalのinitializeを呼び出します。

        this.name = name;
    }
});
var myCat = new Cat('Micia', 20);

alert(myCat.name); //アラート 'Micia'.
alert(myCat.age); //アラート 20.

Implementsの場合:

var Animal = new Class({
    initialize: function(age){

        this.age = age;
    }
});
var Cat = new Class({

    Implements: Animal,
    setName: function(name){
        this.name = name
    }

});
var myAnimal = new Cat(20);
myAnimal.setName('Micia');

alert(myAnimal.name); //アラート 'Micia'.

Classメソッド: implement

ベースとなるクラスに渡されたプロパティを適用し、新しいクラスを作ります。 プロパティを追加してnew Classを行うのと同じですが、既存のクラスを修正するときに便利です。

構文:

MyClass.implement(properties);

引数:

  1. properties - (オブジェクト) ベースとなるクラスに追加するプロパティ。

例:

var Animal = new Class({
    initialize: function(age){

        this.age = age;
    }
});
Animal.implement({
    setName: function(name){

        this.name = name;
    }
});
var myAnimal = new Animal(20);
myAnimal.setName('Micia');

alert(myAnimal.name); //アラート 'Micia'

このドキュメントはMooToolsのドキュメントを元に高橋文樹が翻訳(ちょっと改変)しました。
本家と同じく、Attribution-NonCommercial-ShareAlike 3.0ライセンスで公表されています。

トップに戻る