ホームページ >ウェブフロントエンド >jsチュートリアル >強化されたカプセル化のために JavaScript でプライベート メソッドをシミュレートするにはどうすればよいでしょうか?
パブリック メソッドはクラス機能への外部アクセスを提供しますが、プライベート メソッドはクラス内で分離された操作を提供します。 JavaScript はプライベート メソッドをネイティブにサポートしていませんが、革新的なアプローチでこの概念を模倣できます。
次のシナリオを考えてみましょう:
<code class="javascript">function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here }</code>
この例では、buy_food と use_restroom の両方が外部からアクセスできるパブリック メソッドです。クラス。これらのパブリック メソッドのみが呼び出すことができるプライベート メソッドを導入するにはどうすればよいですか?
JavaScript には真のプライベート メソッドがありませんが、クラス コンストラクター内でローカル関数を作成できます。外部からアクセスできないもの。その方法は次のとおりです。
<code class="javascript">function Restaurant() { var myPrivateVar; var private_stuff = function() { // Only visible inside Restaurant() myPrivateVar = "I can set this here!"; } this.use_restroom = function() { // use_restroom is visible to all private_stuff(); } this.buy_food = function() { // buy_food is visible to all private_stuff(); } }</code>
この例では、private_stuff は Restaurant コンストラクター内のローカル関数です。これはプロトタイプの一部ではなく、use_restroom メソッドと buy_food メソッドによってのみアクセスできます。
このアプローチでは、パブリック メソッドと「プライベート」メソッドの間の望ましい分離が維持され、後者がクラス内でシームレスに動作できるようになります。
以上が強化されたカプセル化のために JavaScript でプライベート メソッドをシミュレートするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。