Javascriptの中の類の定義と原型
551 ワード
ClassA=function(){
this.a='a';
this.b='b';
this.method=function(){
alert(1)
}
}
ClassA.prototype.method=function(){
alert(2)
}
var a=new ClassA();
a.method();
この時はalert(1)ですか?それともalert(2)ですか?答えはalert(1)ですJSにおける方法は、まず例で方法methodを検索し、親のクラスで検索しなかったら、プロトタイプで検索する.
JSのクラスを定義すると、しばしば構造関数に属性を定義し、プロトタイプに方法を定義するので、各インスタンスメモリに一つの方法の参照しかないことを保証します.ですから、通常はalert(1)のように方法を定義しません.