>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 개인 메소드를 어떻게 구현할 수 있습니까?

JavaScript에서 개인 메소드를 어떻게 구현할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 14:36:03937검색

How Can You Implement Private Methods in JavaScript?

JavaScript에서 비공개 메소드 구현

JavaScript는 기본적으로 클래스에서 비공개 메소드 개념을 지원하지 않지만 다음을 달성할 수 있는 해결 방법이 있습니다. 비슷한 효과. 클래스 프로토타입 내에서 비공개 메서드 정의를 피함으로써 클래스 인스턴스 내에서만 액세스할 수 있는 메서드를 생성할 수 있습니다.

다음 코드 조각을 고려하세요.

<code class="javascript">function Restaurant() {
    var myPrivateVar;

    // Private method
    var private_stuff = function() {
        myPrivateVar = "I can set this here!";
    }

    // Public methods
    this.use_restroom = function() {
        private_stuff();
    }

    this.buy_food = function() {
        private_stuff();
    }
}</code>

이 예에서 private_stuff 함수는 Restaurant 함수 자체 내에서 비공개 메서드로 정의됩니다. 즉, Restaurant 인스턴스 내에서만 액세스할 수 있고 외부에서는 호출할 수 없습니다.

공용 메소드 use_restroom 및 buy_food는 둘 다 비공개 메소드 private_stuff에 액세스할 수 있으므로 사용자에게 구현 세부 정보를 노출하지 않고 특정 작업을 수행할 수 있습니다.

<code class="javascript">// Create a new instance of Restaurant
var restaurant = new Restaurant();

// Call public methods
restaurant.use_restroom();
restaurant.buy_food();

// Attempting to call private method externally will fail
restaurant.private_stuff(); // Uncaught ReferenceError: private_stuff is not defined</code>

이 해결 방법을 사용하면 클래스의 외부 사용자가 액세스할 수 없는 전용 메서드를 효과적으로 생성하는 동시에 내부 메서드가 상호 작용할 수 있습니다. 그러나 제한된 접근성에도 불구하고 비공개 메서드가 여전히 함수 범위에 존재하므로 이 메서드는 완전한 캡슐화를 제공하지 않는다는 점에 유의하는 것이 중요합니다.

위 내용은 JavaScript에서 개인 메소드를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.