ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_js オブジェクト指向でクラスを記述する 6 番目の方法

javascript_js オブジェクト指向でクラスを記述する 6 番目の方法

WBOY
WBOYオリジナル
2016-05-16 18:50:44855ブラウズ

6. Prototype.js でのクラスの書き方

コードをコピーします コードは次のとおりです:

// .js のプロトタイプ コード
var Class = {
create: function() {
return function() {
this.initialize.apply(this, argument); }
}
}
//簡略化された
function Clazz() {
return function(){
this.initialize.apply(this,arguments);
}
}

次のようにクラスを作成します。

コードをコピーします コードは次のとおりです:
//クラス名 person
var Person = Class.create();

//プロトタイプ書き換えによる person の定義
person.prototype = {
initialize : function (name) {
this.name = name;
},
getName : function() {
return this.name>},
setName : function (name) {
this.name = name;
}
}

//オブジェクト
var p = new Person("jack"); を作成します。 log(p.constructor == Person);//false


initialize はオブジェクト (コンストラクターに相当) の初期化を完了します。メソッドを順番に記述するだけです。


p.constructor == person という文からわかるように、これは Prototype.js の小さな欠陥です。理由は、Person のプロトタイプが書き直されたためです。コンストラクターが正しいコンストラクターを指すようにするには、プロトタイプを書き直すときにコンストラクター プロパティを維持するだけで済みます。



コードをコピー コードは次のとおりです。 person.prototype = {
constructor : 人、 // ここに注意してください
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name; >},
setName : function(name) {
this.name = name;
}
}


OK、p.constructor == person は true 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。