首頁 > web前端 > js教程 > 主體

如何在 JavaScript 中模擬私有方法來增強封裝性?

Linda Hamilton
發布: 2024-11-03 15:26:02
原創
201 人瀏覽過

How can we simulate private methods in JavaScript for enhanced encapsulation?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板