ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript クラス定義構文、プライベート メンバー、プロテクト メンバー、静的メンバーなどの概要_JavaScript スキル

Javascript クラス定義構文、プライベート メンバー、プロテクト メンバー、静的メンバーなどの概要_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:58:301069ブラウズ

実際、一般的な用語では、クラスはオブジェクトのテンプレートです。mootoos フレームワークにヒントを得て、JS の OO 機能を強化するために、JSON オブジェクトを使用してこのオブジェクトのテンプレートを記述することができます。このテンプレートでは、プライベート メンバー、保護されたメンバー、静的メンバーをシミュレートできます。
これは JS でシミュレートされたクラス定義構文です。コード内のクラスは 2 つのパラメーターを受け入れるカスタム関数であり、2 番目のパラメーターはオブジェクト テンプレートの JSON です。この JSON オブジェクトでは、フィールド「extend」、「initialize」、および「static」は事前定義されたキーワードであり、その意味は従来のクラスベースの OO 言語と似ています。フィールド accessabe は、オブジェクト メンバーのアクセス可能性を記述するために使用されます。値は ("private"、"protected"、"public") です。これらのキーワードは、変更されたメンバーが対応するアクセス権を持つように、Class 関数で特別に処理されます。

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

Class("person" ,{
// 継承
extend: Animal,
//Constructor
initialize:function(name,sex){
this.name = name;
this.sex = sex;人。count ;
},
//静的メンバー
static:{
count: {
accessabe:"private",
value: ""
}
} ,
//インスタンス メンバー
年齢: {//プライベート属性 member
accessabe:"private",
value:0
},
//パブリック属性
name : {
accessabe: "public",
value: ""
},
sex:{
accessabe: "public",
value: ""
},
//メソッド
sleep: {//保護されたメソッド
accessabe:"protected",
value: function(){
}
},
say: { //パブリック メソッド
accessabe: "public",
value: function(){
retun (this.age-1)
}
}
}); > //Call
var xiaom = new Person("小明","男");
xiaom.age //プライベートプロパティにアクセスできません
xiaom.sleep() //保護されたメソッドにアクセスできません
xiaom.say() //パブリックメソッドにアクセス可能

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