特権メソッドを定義する コンストラクター内の this キーワードを通じて定義されたメソッドは、インスタンス化されたオブジェクトの継承によって呼び出すことができます。
var Student = function(name) {
var _name = name; //プライベート属性
//特権メソッド
this.getName = function() {
return _name;
this.setName = function(name) ) {
_name = 名前;
} var
s1.getName(); >
特権メソッドの役割
特権メソッドはコンストラクターの外部からパブリックにアクセスでき (インスタンス化されたオブジェクトに限定)、プライベートのメンバーやメソッドにもアクセスできるため、オブジェクトまたはコンストラクター インターフェイスが最適です。特権メソッドを介して、プライベート プロパティまたはメソッドへのパブリック メソッドのアクセスを制御できます。 JS フレームワークの拡張には多くのアプリケーションがあります。
特権メソッドとパブリック メソッドの違い
同じ点: 1. どちらもコンストラクターの外部でパブリックにアクセスできます。 2. 全員がパブリック プロパティにアクセスできます
違い: 2 つの点があります
1. 各インスタンスには特権メソッドのコピーが必要ですが (シングルトンで使用される場合を除き、メモリを考慮する必要があります)、パブリック メソッドは Share
すべてのインスタンスのコードをコピーします
//2 つのインスタンスの特権メソッドの参照が異なり、特権メソッドがメソッドはオブジェクトがインスタンス化されるときに使用されます。 Recreated
console.log(s1.getName === s2.getName); //false
2. 特権メソッドはプライベート プロパティとメソッドにアクセスできます。 、しかしパブリックメソッドはできません。
コードをコピー
console.log(_name) //ReferenceError: _name が定義されていません
}; .myMethod() ;
概要
: 特権メソッドは、コンストラクターのインターフェイスとして機能し、特権メソッドを通じてプライベート プロパティとメソッドにアクセスできます。