1
2
3
코어 p.73 this
var obj1 = { // 1) 객체 생성: obj1 안에 outer 익명 함수 프로퍼티
outer: function() { // 3) obj1.outer() 함수의 실행 컨텍스트 생성->호이스팅. obj1로 this 바인딩
console.log(this); // 4) this 는 obj1
var innerFunc = function() { // 5) innerFunc 는 지역변수.outer스코프에서만 접근
console.log(this); // 전역 or obj2
}
innerFunc(); // 6) 일반함수로 직접 호출("." 이 없다.) this 는 전역
var obj2 = {
innerMethod: innerFunc
};
obj2.innerMethod(); // innerFunc의 this는 obj2
}
};
obj1.outer(); // 2)
p. 95 일반 함수를 콜백 함수로! 함수 안의 함수(콜백함수)가 되는 것. -> 전역 객체
// 특정 조건일 때, (콜백)함수를 실행해서 알려달라.
// 자신(콜백함수)을 다른 코드의 인자로 넘겨주면서 제어권 위임.
var count = 0;
var timer = setInterval(function () { // setInterval 이 콜백함수 호출
console.log(count);
// console.log(timer);
if (++count > 4) clearInterval(timer);
}, 300);
// 1) 일반 함수
var count = 0;
var cbFunc = function () {
console.log(count);
};
cbFunc();
2) cbFunc를 (setInterval)을 이용해서, 콜백 함수로 사용하기
// 반복이 있으니, 변수로 증감 카운트 만들기
var count = 0;
var cbFunc = function () {
console.log(++count);
};
setInterval(cbFunc, 1000);
// 3) 특정 조건(횟수) 후, 정지 시키기
var count = 0;
var cbFunc = function(){
console.log(++count)
if (count > 4) clearInterval(timer)
};
3) 콜백 함수를 중지 시키려면?
// 콜백 함수를 호출한 코드를 변수(timer)에 담아서, clearInterval()
var count = 0;
var cbFunc = function () {
console.log(count);
if (++count>4) clearInterval(timer);
};
var timer = setInterval(cbFunc, 1000);
'자바스크립트 문법 > 중고급(비동기_프라미스_this)' 카테고리의 다른 글
제너레이터 (0) | 2022.10.31 |
---|---|
비동기 promise, async/await (생활코딩) (0) | 2022.10.28 |
24장 클로저 (0) | 2022.09.30 |
22장 this (0) | 2022.09.30 |
댓글