ホームページ ウェブフロントエンド jsチュートリアル JavaScript でプライベート メソッドを使用してカプセル化を実現するにはどうすればよいですか?

JavaScript でプライベート メソッドを使用してカプセル化を実現するにはどうすればよいですか?

Nov 03, 2024 am 08:09 AM

How to Achieve Encapsulation with Private Methods in JavaScript?

JavaScript のプライベート メソッド

クラス内にデータとメソッドをカプセル化することは、オブジェクト指向プログラミングの基本原則です。ただし、JavaScript では、クラス内でプライベート メソッドを定義するのが難しい場合があります。

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

JavaScript でパブリック メソッドを作成するには、通常、プロトタイプを使用します。 property:

<code class="javascript">function Restaurant() {}

Restaurant.prototype.buy_food = function(){
   // something here
};

Restaurant.prototype.use_restroom = function(){
   // something here
};</code>
ログイン後にコピー

ユーザーは次のようにしてこれらのメソッドにアクセスできます。

<code class="javascript">var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();</code>
ログイン後にコピー

プライベート メソッドの定義

プライベート メソッドを作成するにはクラス内の他のメソッドにのみアクセス可能ですが、プロトタイプの外で定義できます。

<code class="javascript">function Restaurant() {
    var private_stuff = function() {  // Only visible inside Restaurant()
        // Do something
    };

    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>
ログイン後にコピー

制限事項

このアプローチには欠点があります。プライベート メソッドは使用できません。プロトタイプの一部。これは、クラスのインスタンスから直接アクセスできないことを意味します:

<code class="javascript">var r = new Restaurant();
r.private_stuff(); // This will not work</code>
ログイン後にコピー

したがって、プライベート メソッドは、同じクラス内のパブリック メソッドによってのみ呼び出すことができます。これにより、ある程度のカプセル化が提供される可能性がありますが、他のプログラミング言語で見られる真のプライベート メソッドほど堅牢ではありません。

以上がJavaScript でプライベート メソッドを使用してカプセル化を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

&#x27; this&#x27; JavaScriptで? &#x27; this&#x27; JavaScriptで? Mar 04, 2025 am 01:15 AM

&#x27; this&#x27; JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles