Skip to content

Home

akimana edited this page · 11 revisions
Clone this wiki locally

Welcome to the Zepto.OO wiki!

OOPの考え方 / Thought for OOP

哲学的な事を考えず、技術的な事だけを考える。 Without thinking that the philosophical, thinking only that the technical.

  • オブジェクトは、変数とその変数に対する処理が定められた独自の処理単位である。
    Object is its own processing unit for processing variables and their variables have been established.
  • オブジェクトには2つの状態があり、クラスとインスタンスである。
    The object has two states, which is an instance and class.
  • クラスは、単なるオブジェクトの定義に過ぎず、初期値と処理方法が定められる。
    Class, only a mere definition of the object, how to handle the initial value is determined.
  • インスタンスは、クラスに具体的な値を持たせて活用状体にあるオブジェクトである。
    Instance is an object in the body shape take advantage of them have a concrete value to the class.

Zepto.OO

Zepto.OO.js はクラス生成ユーティリティです。
Zepto.OO.js is class genetate utility.

Usage:


var MyClass = $.OO.create('MyClass', {
    initialize : function(){
        // memberValiable
        this.memberValiable = null;

        // setter / getter
        $.OO.accessor(this, {
            prop : {
                set : function(v){
                    this.memberValiable = v;
                },
                get : function(){
                    return this.memberValiable;
                }
            }
        });
    },
    memberMethod : function(){
        /* omitted */
    },
    memberMethod2 : function(){
        /* omitted */
    }
}

var class = new MyClass();

Inheritance:
var MyClass2 = $.OO.Create('MyClass2', MyClass, {
    /* constructor & members settings */
    initialize : function(){
        // call method in sper-class e.g.)super-class initialize
        this.__proto__.initialize(arguments);
        this.memberValiable2 = 'hoge';
    },
    /* omitted */
})

var class2 = new MyClass2();

名前のある関数でコンストラクタを生成するのが特徴。

  • constructor.name のような constructor プロパティを利用できる。
  • 継承したオブジェクトも proto.constructor.name のようにスーパークラスを調査できる。
Something went wrong with that request. Please try again.