THIS 사용 시나리오 요약
9237 단어 프런트엔드 개발
oBox.onclick = function(){
// => this oBox
}
2. 일반 함수 집행, 함수 중의this는 집행의 주체에 달려 있다. 누가 집행하는this는 바로 누가 즉각 집행하는 함수로 대상 호출이 없기 때문에this는 window이다(엄격한 모드에서 점this는undefined이다)
let fn = function () {
console.log(this.name);
};
let obj = {
name: ' ',
fn: fn
};
fn(); //this:window
obj.fn();//this:obj
3. 구조 방법 집행, 방법체 중의this는 현재 클래스의 실례
let Fn = function() {
this.x = 100; //this:f
};
let f = new Fn;
4. 화살표 함수에 자신의this가 없음,this는 상하문에서의this
let obj = {
fn: function() {
//this:obj
setTimeout(() => {
//this: obj
}, 1000)
}
}
obj.fn()
5. 소괄호 표현식에서this의 지향에 영향을 미친다
let obj = {
fn: function(){
console.log(this);
}
}
obj.fn();//this:obj
(12, obj.fn)();//this:window
6.call/apply/bind를 사용하면this지향을 바꿀 수 있습니다
fn.call(obj);//this:obj
fn.call(12)//this:12
fn.call();//=>this:window, call/apply/bind null undefined ,this window,
// undefined
var n = 2;
var obj = {
n: 3,
fn: (function (n) {
n *= 2;
this.n += 2;
var n = 5;
return function (m) {
this.n *= 2;
console.log(m + (++n))
}
})(n)
};
var fn = obj.fn;
fn(3);
obj.fn(3);
console.log(n, obj.n);//9, 10, 8, 6
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
onbeforeunload 이벤트 검사 창 새로 고침 또는 닫기 사용onunload, onbeforeunload는 페이지를 새로 고치거나 닫을 때 호출됩니다. onbeforeunload는 페이지를 새로 고치거나 닫기 전에 터치합니다. 브라우저는 서버에 새 페이지를 읽으라고 요청하지 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.