> 웹 프론트엔드 > JS 튜토리얼 > 꼭 알아야 할 자바스크립트 지식 포인트 : '이 포인터'의 응용_자바스크립트 스킬

꼭 알아야 할 자바스크립트 지식 포인트 : '이 포인터'의 응용_자바스크립트 스킬

WBOY
풀어 주다: 2016-05-16 17:35:37
원래의
1287명이 탐색했습니다.

많은 사람들이 이 지침을 알고 있습니다. 이 기사의 주요 목적은 우리 회사의 새로운 직원을 교육하는 것입니다.
기본 this 포인터는 다음을 가리킵니다
규칙 1
이 포인터는 obj.fun(), this 포인터와 같이 기본적으로 메서드가 호출될 때 지정된 객체를 가리킵니다. 재미있는 메소드 본문에서 obj를 가리킵니다.

코드 복사 코드는 다음과 같습니다.

var user = { 이름: 'Duan Guangwei ' };
user.getName = function(){ return this.name; };
user.getName() //'Duan Guangwei' 반환

코드 복사 코드는 다음과 같습니다.

var user = { name: 'Duan Guangwei' };
user .getName = function(){ return this .name; };
user.getName(); //'Duan Guangwei'

반환 window.name = 'Li Niuniu';
창. getName = user.getName
window.getName(); //'lee妞妞'
getName()을 반환합니다.

규칙 2
메서드 호출 중 메소드에 객체가 지정되지 않은 경우 this 포인터는 기본적으로 window를 가리킵니다. 예: fun(), fun 메소드 본문의 this 포인터는 window를 가리킵니다.

코드 복사 코드는 다음과 같습니다.
var fun = function(){
return this ;
}
fun(); //Return window 객체

규칙 3 메소드 본문에 없는 코드는 익명 메소드로 실행되는 것으로 간주할 수 있습니다. 규칙 2에 따르면 이 포인터가 창을 가리키는 것으로 추론할 수 있습니다.
이 //window 객체

이 포인터의 기본 포인터 변경
적용 사용

코드 복사 코드는 다음과 같습니다:
var user = { name: 'Duan Guangwei' };
user.hi= function(message){ return this.name ':' message; 🎜> window.name = 'Li Niuniu'
user.hi('Hello'); //'Duan Guangwei: 안녕하세요' 출력
user.hi.apply(window, ['Hello']) / /Output' Li Nuuniu: Hello'


통화 사용


var user = { 이름: 'Duan Guangwei' };
user.hi= function(message){ return this.name ':' message };
window; .name = 'Li Niuniu'
user.hi('Hello'); //'Duan Guangwei: Hello' 출력
user.hi.call(window, 'Hello') //'Li Niuniu' 출력; : Hello'


생성자에 있는 이 포인터는
생성자에 있는 이 포인터가 기본적으로 생성되는 개체를 가리킵니다.


var User = function(name){
this .name = 이름;
};
User.prototype.hi = function(){
return this.name;
};
var user = new User('Duan Guangwei');
user.hi(); //'Duan Guangwei' 출력


마지막 테스트
최종 출력이 무엇인지 맞춰보세요.

var User = function(name){
this .name = 이름;
};
User.prototype.hi = function(){
return this.name;
};
var user = new User('Duan Guangwei');
user.hi(); //'Duan Guangwei' 출력

var hi = user.hi;

hi(); 🎜>


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿