Browse By

JavaScriptのオブジェクト指向

Pocket

JavaScriptのオブジェクト指向について

JavaScriptはれっきとしたオブジェクト指向言語です。しかし、一般的なJavaやC++、C#などの言語とは根本的に異なっています。
JavaScriptにはインスタンス化、インスタンスという概念はありますが、クラスがなくプロトタイプ(ひな形)という概念が存在しています。

関数で簡単なクラスを定義してみる

var Person = function(){}; // クラス
var p = new Person(); // インスタンス化

コンストラクタで初期化

new演算子によってオブジェクトを生成することを想定した関数オブジェクトのことをコンストラクタと言います。

var Person = function(name, ruby){
    this.name = name;
    this.ruby = ruby;
    this.getName = function(){
        return this.name + '(' + this.ruby + ')';
    }
}; 
var p = new Person('田中', 'タナカ'); // インスタンス化
console.log(p.getName()); // 田中(タナカ) 

上記のコンストラクタで注意すべきなのは「this」キーワードです。thisはこのコンストラクタで生成されるオブジェクト自身を指します。

動的にメソッドを追加する

下記のようにgetNameメソッドを後付で定義することができます。

var Person = function(name, ruby){
    this.name = name;
    this.ruby = ruby;
}; 
var p = new Person('田中', 'タナカ'); // インスタンス化 
p.getName = function(){
    return this.name + '(' + this.ruby + ')';
}
console.log(p.getName()); // 田中(タナカ) 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>