> 웹 프론트엔드 > JS 튜토리얼 > Javascript_기본 지식에 대한 자세한 사용법 설명

Javascript_기본 지식에 대한 자세한 사용법 설명

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

며칠 전 인터뷰에서 이 방법을 사용했는데, 면접관이 제 이해가 좀 틀렸다고 하더군요. 제가 돌아와서 책과 블로그를 몇 번 읽어보고 테스트를 해보니 제 이해가 정말 틀렸다는 걸 알게 됐어요. >

1. 전역변수

은 가장 일반적으로 사용되는 함수로, 실제로 전역 변수인

에서 호출됩니다.

var value="0"; function mei(){ 
 var value="1"; 
 console.log(this.value); //0  console.log(value);   //1 } 
mei();

로그인 후 복사
전역을 가리키므로 0을 출력합니다.

2.생성자

이것은 생성자에서 더 친숙한 사용법입니다. 새 개체를 만든 후에는 새 개체를 가리킵니다.

var value="window"; function mei(){ 
 this.value=1; 
 this.show=function(){ 
  console.log(this.value) 
 } 
} var m=new mei(); 
console.log(m.value);  //1 m.show();        //1
로그인 후 복사
창 대신 1이 출력되는 것을 볼 수 있습니다. 생성자로 인해 여기서는 이미 전역 변수 대신 새 개체를 가리킨다는 것을 알 수 있습니다.

3.전화상담 및 신청

제가 통화한 예시를 직접 빌려서 블로그에 신청하세요

 var p="456"; 
 function f1(){ 
  this.p="123"; 
 } 
 function f2() { 
  console.log(this.p); 
 } 
 f2();       //456  f2.call(f1());  //123  f2.apply(f1());  //123

로그인 후 복사
첫 번째 줄은 이해하기 쉬운 456을 출력합니다. 이는 전역 상황을 나타냅니다. 다음 123은 호출 또는 적용을 사용한 후 f2의 이것이 f1을 가리키고 f1의 p가 123이기 때문입니다. , 해당 기사 블로그를 클릭하세요

4. 객체의 메소드로 함수가 호출되었습니다(제가 잘못한 부분입니다)

여러 메소드로 객체를 작성하라는 요청을 받았는데 갑자기 전역 변수를 정의한 후 이를 객체의 메소드에서 호출하는 데 사용했습니다. 나는 이 방법을 거의 사용하지 않기 때문에 창이어야 한다고 말했고, new나 call만이 이 방향을 바꿀 것이라고 생각했고, 그는 그것이 잘못되었다고 말했고, 이제 내가 직접 시도해 보라고 했습니다. , 우편번호가 정말 틀렸어요

var value="father"; function mei(){} 
mei.value="child"; 
mei.get=function(){console.log(this.value)}; 
mei.show=function(){console.log(value)}; 
mei.get();   //child mei.show();  //father

로그인 후 복사
mei의 메소드로 get이 호출되므로 여기서는 mei.value를 가리키므로 child가 출력됩니다

father는 이렇게 이해합니다. show가 가리키는 함수는 전역 환경에서 정의되어 있으므로 show에서는 값을 찾을 수 없으므로 해당 환경에서 찾습니다. 정의한 다음 글로벌 환경의 가치를 찾습니다. 여기에 오해가 있으면 누군가 지적해 주셨으면 좋겠습니다.

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