이상 한 JS
6727 단어 js
function Animal() {
this.name = 'Animal';
this.sleep = function (who) {
alert(who + " sleep!!");
}
}
function Dog() {
Animal.call(this);
}
function test() {
var dog = new Dog();
dog.sleep("dog");
}
function ScopeTest() {
this.Add = function (a, b) {
fAlert();
return a + b;
};
fAlert = function () {
alert('bbbb');
}
}
var sCope= new ScopeTest();
alert(sCope.Add(3, 4));
test();
JS 에서 가장 이상 한 것 은 바로 이 this 입 니 다. 저 는 개인 적 으로 C \ # 또는 자바 에서 this 는 항상 현재 의 대상 을 가리 키 기 때 문 이 라 고 생각 합 니 다. JS 중의 this 는 가끔 window 를 가리 키 고 가끔 은 다른 대상 을 가리 키 며 가끔 은 이 this 가 바 뀔 때 가 있 습 니 다. 예 를 들 어 위의 코드 는 call 이라는 함 수 를 사용 한 후에 Animal 안의 this 는 dog 이 되 었 습 니 다.이것 은 디 버 깅 할 때 추적 할 수 있 습 니 다.
JS 의 모든 방법 과 변 수 는 하나의 역할 영역 에 속 합 니 다. 위 에서 언급 한 this 는 이 역할 영역 을 가리 키 는 것 입 니 다. 역할 영역 은 사실은 하나의 범위 이 고 역할 영역 은 실행 할 때 결 정 됩 니 다. JS 에서 함수 가 클래스 와 대상 의 역할 을 하기 때문에 실례 화 되 지 않 을 때 도 실행 할 수 있 습 니 다. new 키 워드 를 사용 하지 않 으 면그러면 함수 중의 this 가 가리 키 는 것 은 window 입 니 다. new 를 사용 하면 상황 이 다 릅 니 다. 작은 부분의 테스트 를 통 해 우 리 는 결론 을 얻 을 수 있 습 니 다.
var s="Hell0"
function same() {
var s="Hello!"
alert(this.s);
alert(window.s)
if (this === window) {
alert("the same");
}
}
same();
var fSame = new same();
지금 fSame 함수 가 실 행 될 때 this. s 는 undefined 를 팝 업 합 니 다. 왜 함수 내부 에서 정 의 된 var s = "Hell 오!" 의 값 이 아 닙 니까?이것 은 JS 와 관련 이 있 습 니 다. JS 에서 함 수 는 내부 의 var 로 시작 하 는 변수의 값 을 외부 에서 읽 을 수 없 기 때 문 입 니 다. this 를 더 하면 또 다 릅 니 다.
var s="Hell0"
function same() {
this. s="Hello!"
alert(this.s);
alert(window.s)
if (this === window) {
alert("the same");
}
}
var fSame = new same();
아래 의 이 코드 세 션 의 결 과 는 또 얼마 입 니까?
<script type="text/javascript">
var name = "liu";
function callName() {
alert(name);
var name = "yu";
}
callName();
Javascript 은 함수 필드 에 들 어 갈 때 함수 에 필요 한 모든 임시 변 수 를 설명 하 였 습 니 다. 주의 하 세 요. 성명 일 뿐 할당 을 실행 하지 않 았 습 니 다. 모든 변수의 초기 값 은 undefined 이 고 할당 은 실행 할 때 하 는 것 입 니 다. JS 는 순서대로 위 에서 아래로 실 행 됩 니 다. 따라서 이 팝 업 undefined 의 결 과 는 명확 하 게 설명 되 었 습 니 다.
JS 에서 여러 가지 이상 한 것들 이 저 를 함정 에 빠 뜨 렸 습 니 다. 깊이 이해 하려 면 자신 에 게 몇 개의 함정 을 파 서 뛰 어 들 었 다가 천천히 기어 나 왔 습 니 다. 시 뮬 레이 션 을 통 해 추적 을 통 해 디 버 깅 을 통 해 구름 과 안 개 를 헤 치고 태양 을 볼 수 있 을 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.