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 중국어 웹사이트의 기타 관련 기사를 참조하세요!