prototypeオブジェクト
概要
コンストラクタでメソッドを定義する際はメモリを消費しているが、prototypeで定義することで
メモリの消費量を軽減できる
定義
// オブジェクト定義
var MyClass = function(){};
//コンストラクタでメソッドを定義しない
};
// プロトタイプメソッドを定義
MyClass.prototype.メソッド = function(){
// 処理
};
サンプル
ソース
// オブジェクト定義
var MyClass = function(name){
// プロパティ定義
this.name = name;
//コンストラクタでメソッドを定義しない
};
// プロトタイプメソッドを定義
MyClass.prototype.getData01 = function(){
return 'name = ' + this.name + '<br />';
};
// オブジェクトのインスタンスを生成して実行
var obj1 = new MyClass('User01');
// 結果を出力
document.writeln(obj1.getData01());
document.writeln("<br />");
結果
オブジェクトリテラルで定義
ソース
// オブジェクト定義
var MyClass = function(name){
// プロパティ定義
this.name = name;
//コンストラクタでメソッドを定義しない
};
// オブジェクトリテラルでプロトタイプを定義
MyClass.prototype ={
getData01 : function(name){
return 'name = ' + name + '<br />';
},
getData02 : function(label){
return 'label = ' + label + '<br />';
},
};
// オブジェクトのインスタンスを生成して実行
var obj1 = new MyClass('User01');
// 結果を出力
document.writeln(obj1.getData01('Test Name01'));
document.writeln("<br />");
// 結果を出力
document.writeln(obj1.getData02('Test Name02'));
document.writeln("<br />");
結果
name = Test Name01
label = Test Name02
最終更新:2012年02月18日 08:52