首页  >  文章  >  web前端  >  如何在 JavaScript 中模拟私有方法来增强封装性?

如何在 JavaScript 中模拟私有方法来增强封装性?

Linda Hamilton
Linda Hamilton原创
2024-11-03 15:26:02146浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn