首頁  >  文章  >  web前端  >  JavaScript中如何實作私有方法的封裝?

JavaScript中如何實作私有方法的封裝?

Susan Sarandon
Susan Sarandon原創
2024-11-03 08:09:29488瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn