>  기사  >  웹 프론트엔드  >  자바스크립트로 이것의 미스터리를 파싱하기

자바스크립트로 이것의 미스터리를 파싱하기

怪我咯
怪我咯원래의
2017-03-29 14:48:01941검색

머리말: 이것은 JavaScript의 비교적 특별한 키워드입니다. 광범위한 응용 프로그램과 메소드의 유연성으로 인해 강력해졌지만 동시에 사용하기가 어렵습니다 . 처음 배우기 시작했을 때, 완전히 이해하기 위해 많은 정보를 찾아보았습니다. 그럼 배운 내용을 정리해서 이해하기 쉽게 표현했어요. 공부노트로도, 도움이 필요한 아이들의 참고자료로도 활용 가능해요^_^

이게 뭐죠?

이 키워드의 의미는 명확하고 구체적입니다. 즉, 현재 개체 를 나타냅니다. 이는 이것이 특정 상대적인 상황에서만 적용된다는 것을 의미합니다.

이것은 전역 개체, 현재 개체 또는 임의 개체의 세 가지 상황으로 구분됩니다. 어떤 상황에 있는지 판단하는 것은 전적으로 함수 가 호출되는 방식, JavaScript의 기본 함수 호출에 따라 다릅니다. 여러 가지 방법이 있습니다:

일반 함수로 호출

객체 메서드로 호출

생성자로 호출

호출 사용 적용 또는 호출

1. 일반적인 함수 호출로

------가장 일반적으로 사용되는 방법으로 이 호출 방법은 다음에 속합니다. 전역 호출, 이는 위에서 표시된 것처럼 전역 객체

function test(){
 this.a = 5;
 alert(this.a);
 alert(this);
}
test(); // 5 [object Window]



를 나타냅니다. 전역적으로 정의된 함수, 함수의 소유자는 현재입니다. 즉, window 객체이므로 example()의 호출 객체는 Window이므로 여기서는 Window를 나타냅니다.

또 다른 작성 방법:

var a = 5;
function test(){
 var a = 10;
 alert(this.a);
}
test(); //5



위와 같이 변수 a도 test() 함수 내부에 선언되어 있지만 test() 호출 결과는 5입니다. 이때 내부 함수는 Window입니다. 그런 다음 다른 방식으로 작성합니다.


var a = 5;
function test(){
 this.a = 10;
}
test();
alert(a); //10

test() 함수를 호출하고 전역 변수를 변경합니다. a의 값은 이것이 이때 전역 개체를 나타냄을 나타냅니다.


2. 객체 함수로 호출
------객체가 함수를 호출하면 객체를 가리킵니다


var name="张三";
 var person={
  name:"李四",
  showName:function(){
   alert(this.name);
  }
 }
 person.showName(); //输出 李四
 var other=person.showName;
 other(); //输出 张三

위에 표시된 대로 person.showName()을 실행한 결과는 Li Si입니다. 이는 showName의 이 항목이 현재 person을 가리킨다는 것을 나타냅니다.

이후; person.showName을 other에 할당하면 other는 전역 변수이므로 window 객체의
속성
으로 간주할 수 있습니다. 따라서 other()를 호출하면 window.other()를 호출하는 것과 동일하므로 이는 창을 가리키고 출력 결과는 Zhang San입니다. 그래서 함수 개체로 호출하면 다음과 같습니다. 호출의 대상을 가리킵니다.


3.
을 생성자로 호출 ------생성자는 이 함수를 통해 새 객체(객체)를 생성하며 이는 이 New 객체를 가리킵니다. ;


function animal(){
 this.name = "豆豆";
}
var dog = new animal();
alert(dog.name); // 输出 豆豆

위와 같이 new 키워드를 통해
객체 클래스
유형의 객체를 생성하고 할당합니다. 이 생성자를 실행하면 생성자 함수 범위 의 this가 이 객체를 가리키고 여기서는 dog을 가리키므로 this.name은 dog.name과 동일하므로 출력 결과는 bean bean입니다.
4. Apply 또는 call을 사용하여 호출
------apply()는 객체의 한 메서드를 적용하고 다른 메서드를 사용합니다. 객체는 현재 객체를 대체합니다.


var a = "张三";
function test(){
 alert(this.a);
}
var b = {};
b.a = "李四";
b.n = test;
b.n(); //李四
b.n.apply(); //张三
b.n.apply(b); //李四

위와 같이: b.n()----호출 객체가 b이므로 이것이 b를 가리킵니다. this.a = = b.a 이므로 결과는 Li Si입니다.

 b.n.apply----apply()의 매개변수가 비어 있으면 현재 객체를 대체할 객체가 없으며 기본적으로 전역 객체가 사용됩니다. , 따라서 이것은 창을 가리키며 결과는 Zhang San의 경우

b.n.apply(b)----현재 이 지점을 b로 바꾸는 것을 의미하므로 이는 b를 가리키고 결과는 Li Si입니다.

(본 글은 인터넷을 기준으로 합니다. 내용이나 일부 도서에 오류가 있을 경우 지적해주시면 시간 맞춰 수정하겠습니다. O(∩_∩)O)


요약:
이 글에서는 JavaScript를 소개합니다. 다양한 상황에서 이 키워드의 의미를 보여주는 예는 매우 간단하므로 이해를 깊게 하는 데 도움이 됩니다. 이는 JavaScript의 작은 개념일 뿐이지만 이를 활용하여 JavaScript의 함수 실행 환경을 이해할 수 있습니다. 이에 대한 관련 지식을 완전히 익히면 객체 지향 JavaScript 프로그램을 쉽게 작성할 수 있습니다. 마지막으로 시청해 주셔서 감사합니다.

자바스크립트로 이것의 미스터리를 파싱하기

위 내용은 자바스크립트로 이것의 미스터리를 파싱하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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