Home > Web Front-end > JS Tutorial > body text

How to Achieve Encapsulation with Private Methods in JavaScript?

Susan Sarandon
Release: 2024-11-03 08:09:29
Original
490 people have browsed it

How to Achieve Encapsulation with Private Methods in JavaScript?

Private Methods in JavaScript

Encapsulating data and methods within a class is a fundamental principle in object-oriented programming. In JavaScript, however, defining private methods within a class can be challenging.

Creating a Public Method

To create a public method in JavaScript, we typically use the prototype property:

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

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

Restaurant.prototype.use_restroom = function(){
   // something here
};</code>
Copy after login

Users can access these methods as follows:

<code class="javascript">var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();</code>
Copy after login

Defining Private Methods

To create a private method that is only accessible to other methods within the class, we can define it outside of the prototype:

<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>
Copy after login

Limitations

This approach has a downside: private methods cannot be part of the prototype. This means they cannot be accessed directly from an instance of the class:

<code class="javascript">var r = new Restaurant();
r.private_stuff(); // This will not work</code>
Copy after login

Therefore, private methods can only be called by public methods within the same class. While this may provide some level of encapsulation, it is not as robust as true private methods found in other programming languages.

The above is the detailed content of How to Achieve Encapsulation with Private Methods in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template