ホームページ >ウェブフロントエンド >jsチュートリアル >Javascriptのオブジェクト指向(1)(パブリックメソッド、プライベートメソッド、特権メソッド)_jsオブジェクト指向

Javascriptのオブジェクト指向(1)(パブリックメソッド、プライベートメソッド、特権メソッド)_jsオブジェクト指向

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

プライベート メソッド: プライベート メソッド自体は、クラス内のすべてのプロパティ、つまりプライベート プロパティとパブリック プロパティにアクセスできます。ただし、プライベート メソッドをクラスの外から呼び出すことはできません。

プライベート メソッドの書き込み:

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

function myClass () {
var private_attribute =Initial_value;
function private_method () { }
var private_method2 = function () { }
}

インスタンス showpet( ) はプライベート メソッドです

コードをコピーします コードは次のとおりです:
var pet=function(){ var temp="" //プライベート変数は関数またはオブジェクトのスコープ内でのみアクセスできます
function showpet(){
alert("123")
}
showpet ();// プライベート メソッドは関数スコープ内で使用できます。
}
showpet();//エラーが発生します
pet.showpet()//まだこのように呼び出すことはできません

var Penguin=new pet() //ペット オブジェクトをインスタンス化します
Penguin.showpet()//申し訳ありませんが、まだこのように呼び出すことはできません。


パブリック メソッド:

1. パブリック メソッドはクラスの外で呼び出すことができます (

2)。ただし、クラスの Private プロパティにはアクセスできません。

3. パブリック メソッドは、クラスのプロトタイプ属性を通じてクラスの内部または外部に追加する必要があります。

パブリック メソッドの作成:



function myClass () {
this.public_attribute = 初期値;
this.prototype.public_method = function () { }
}
myClass.prototype.public_attribute2 = 初期値; myClass.prototype .public_method2 = function () { }


例:


コードをコピー コードは次のとおりです: var pet=function(){
function showname(){//プライベート メソッド
alert(this.name)
}
this。 show=function(){ //ここで理解できない場合は、このメソッドを以下で紹介しますのでご注意ください。
Showname();
}
}
pet.prototype.setname=function(str){
name=str;
var Penguin=new pet()
Penguin.setname("Penguin");//ペンギンにインスタンスの名前の値を追加
Penguin.show(); //ペンギンをポップアップする
Penguin.setname("wind");/ /インスタンスの追加 名前の値は Wind
Penguin.show(); // Wind をポップアップします



特権メソッド:
1. 特権メソッドは次のとおりです。クラスの外で呼び出される Called,

2. ただし、クラスのプライベートプロパティにアクセスでき、クラスのパブリックプロパティにもアクセスできるため、やむを得ず特別なパブリックメソッドとみなすことができます。

3. ただし、上記のpublicメソッドの宣言・定義の仕方とは異なります。特権メソッドはクラス内で宣言する必要があります。

特権メソッドの書き込み:




コードをコピー
コードは次のとおりです: function myClass () { this.privileged_method = function () { }
}


インスタンス



コードをコピー
コードは次のとおりです: var pet=function(){ function showname(){//プライベート メソッド
alert(this.name )
}
this.show=function(){//this キーワードを使用して特権メソッドを定義します。
showname(); // 特権メソッド内のプライベート メソッドにアクセスします。
}
}
pet.prototype.setname=function(str){
name=str; 🎜>var Penguin=new pet(); // ペット オブジェクトをインスタンス化します
Penguin.setname("Penguin"); // 公開メソッドを呼び出して変更します
Penguin.show(); // 特権メソッドを呼び出しますプライベートメソッドとポップアップ名



The following is some of my own understanding: through studying the above, combined with the books I have read. The understanding of public, private and privilege is as follows:
Public method: It is a method that all objects instantiated through this class have or can use. Generally, common methods are placed in the "prototype object". If placed in the constructor, the common methods will be repeatedly created.

Private method: cannot be called externally.
Privileged method: The closure principle is used, that is, through the scope chain, the internal function can access the variable object of the external function (that is, the private variables and private methods of the class). (Scope chain, closure, variable object; these three are explained in "Javascript Advanced Programming")
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。