Edited at

javascript


プロトタイプ 

  インスタンンスのようなもの


コンストラクタ

  new演算子を用いて、オブジェクトを生成することを想定した、「関数オブジェクト」


var Member = function(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
this.getName = function(){
return this.lastName + '' + this.firstName;
}
};

var men = new Member('けんた','やまだ');
document.writeln(men.getName());

→やまだ けんた

rubyに置き換えるとこんなこと?

class Member

def initialize(firstName, lastName)
@firstName = firstName
@lastName = lastName
end

def getName
@firstName + @lastName
end

end

puts member = Member.new('けんた','やまだ')
puts member

プロトタイプの目的

javascriptのインスタンスは、【インスタンス毎にメソッドをもつ】

1プロトタイプにすると、【rubyのクラスのような扱いができる】

2インスタンスの値を引き継げる!!(インスタンス変数もインスタンス毎)


var Member = function(){};

Member.prototype.sex = '';

var men1 = new Member();
var men2 = new Member();
document.writeln(men1.sex + '|' + men2.sex);
men2.sex ='';
document.writeln(men1.sex + '|' + men2.sex);

| |


var Member = function(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
}

Member.prototype.getName = function(){
return this.lastName + '' + this.firstName;
};

Member.prototype.toString = function(){
return this.lastName + this.firstName;
}

Member.prototype.firstName =" AAA"

Member.prototype.lastName =" BBBB"

document.writeln(Member.prototype.getName())

document.writeln(Member.prototype.toString())

Member.prototype = {

getName : function(){
return this.lastName + '' + this.firstName;
};

toString : function(){
return this.lastName + this.firstName;
}
}

Member.prototype.getName = function(){
return this.lastName + '' + this.firstName;
};

Member.prototype.toString = function(){
return this.lastName + this.firstName;
}