JS特権メソッド定義機能とパブリックメソッドとの違い_JavaScriptスキル

WBOY
リリース: 2016-05-16 17:40:20
オリジナル
1270 人が閲覧しました
特権メソッドを定義する
コンストラクター内の 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


すべてのインスタンスのコードをコピーします
コードは次のとおりです: // Student オブジェクト インスタンスを作成しますvar s1 = new Student('zhangsan'); var s2 = new Student('lisi');
//2 つのインスタンスの特権メソッドの参照が異なり、特権メソッドがメソッドはオブジェクトがインスタンス化されるときに使用されます。 Recreated
console.log(s1.getName === s2.getName); //false


2. 特権メソッドはプライベート プロパティとメソッドにアクセスできます。 、しかしパブリックメソッドはできません。



コードをコピー
コードは次のとおりです: // Student のパブリック メソッドを作成します// パブリック メソッドはプライベート プロパティにアクセスできません Student.prototype.myMethod = function() {
console.log(_name) //ReferenceError: _name が定義されていません
}; .myMethod() ;



概要
: 特権メソッドは、コンストラクターのインターフェイスとして機能し、特権メソッドを通じてプライベート プロパティとメソッドにアクセスできます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!