JavaScript의 개인 메서드
데이터와 메서드를 클래스 내에 캡슐화하는 것은 객체 지향 프로그래밍의 기본 원칙입니다. 그러나 JavaScript에서는 클래스 내에서 비공개 메소드를 정의하는 것이 어려울 수 있습니다.
공개 메소드 생성
JavaScript에서 공개 메소드를 생성하려면 일반적으로 프로토타입을 사용합니다. 속성:
<code class="javascript">function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here }; Restaurant.prototype.use_restroom = function(){ // something here };</code>
사용자는 다음과 같이 이러한 메서드에 액세스할 수 있습니다.
<code class="javascript">var restaurant = new Restaurant(); restaurant.buy_food(); restaurant.use_restroom();</code>
개인 메서드 정의
개인 메서드를 생성하려면 클래스 내의 다른 메서드에서만 액세스할 수 있으므로 프로토타입 외부에서 정의할 수 있습니다.
<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>
제한 사항
이 접근 방식에는 단점이 있습니다. 프로토타입의 일부. 즉, 클래스 인스턴스에서 직접 액세스할 수 없습니다.
<code class="javascript">var r = new Restaurant(); r.private_stuff(); // This will not work</code>
따라서 프라이빗 메서드는 동일한 클래스 내의 퍼블릭 메서드로만 호출할 수 있습니다. 이는 일정 수준의 캡슐화를 제공할 수 있지만 다른 프로그래밍 언어에서 발견되는 진정한 전용 메서드만큼 강력하지는 않습니다.
위 내용은 JavaScript에서 개인 메소드를 사용하여 캡슐화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!