>웹 프론트엔드 >프런트엔드 Q&A >JavaScript가 인스턴스 메소드를 정의할 수 있나요?

JavaScript가 인스턴스 메소드를 정의할 수 있나요?

青灯夜游
青灯夜游원래의
2021-11-22 14:03:181806검색

Javascript는 인스턴스 메소드를 정의할 수 있습니다. 1. JavaScript 객체 프로토타입 참조 프로토타입을 사용하여 인스턴스 메소드를 구현합니다. 2. 객체 인스턴스에서 직접 메소드를 정의합니다. 3. 이 포인터를 통해 인스턴스 메소드를 정의합니다.

JavaScript가 인스턴스 메소드를 정의할 수 있나요?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

1. JavaScript 객체 프로토타입 참조 프로토타입을 사용하여 인스턴스 메소드

var BaseClass = function() {};  
BaseClass.prototype.method1 = function(){  
      alert(' This is a instance method ');  
}  
var instance1 = new BaseClass();  
instance1.method1(); //This is a instance method

2. 인스턴스에서 직접 메소드(객체)를 정의합니다.

var BaseClass = function() {};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' This is a instance method too ');  
}   
instance1.method1();//This is a instance method too

3. 이 포인터를 통해 인스턴스 메소드(변수)를 정의합니다.

그렇다면 인스턴스에 동일한 인스턴스 메소드, 프로토타입 참조 및 "this"를 동시에 정의한 후 인스턴스는 어느 것을 먼저 호출할까요?

var BaseClass = function() {  
 this.method1 = function(){  
   alert(' Defined by the "this" instance method');  
  }  
 };  
var instance1 = new BaseClass();  
instance1.method1();//Defined by the "this" instance method

* 결과 추적 테스트를 실행하면 인스턴스에 직접 적중되는 변수의 우선순위가 "this"에 정의된 우선순위보다 높은 것을 확인할 수 있습니다.

* * 그리고 "this"에 정의된 우선순위

* 즉, 인스턴스에 직접 정의된 변수는 "this"와 프로토타입에 정의된 변수를 덮어쓰고, "this"에 정의된 변수는 프로토타입타입에 정의된 변수를 덮어씁니다.

【추천 학습:

javascript 고급 튜토리얼

위 내용은 JavaScript가 인스턴스 메소드를 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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