プロトタイプ
インスタンンスのようなもの
コンストラクタ
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;
}