공용 메소드는 클래스 기능에 대한 외부 액세스를 제공하는 반면, 비공개 메소드는 클래스 내에서 격리된 작업을 제공합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!