작성
·
229
1
안녕하세요 선생님!
forEach()매소드에서 설명해주신 this에 대해 더 설명 해주실 수 있으실까요? 구글링도 해보았는데 더 헷갈리네요ㅠ
"this는 함수 내에서 전역변수의 값에 접근할 때 사용한다" 이렇게 이해하면 되는건가요?
var list = [1,2];
var fn = function(el, index, all){
console.log(el + this.ten);
};
list.forEach(fn, {ten : 10});
답변 6
0
디버거와 관계없어요. 강좌의 환경 설정을 참조하세요. 이제 얼마 안 남았으니 화이팅하고요. 끝나면 중고급 가기 전에 지금처럼 코딩하면서 다시 전체를 들으면서 정리하기 바랍니다. 기본이 중요하며 비기너 과정에 기본이 거의 담겨 있어요. 여기서 정리안되면 다음은 외우게 되는데요, 이건 아닌거죠^^
0
네, 답변 감사합니다! 함수에 대한 이해가 부족해서 이런 궁금증이 발생되는 거군요ㅜㅜ 강좌 들으면서 더 이해하도록 하겠습니다. (그리고 앞서 보여드린 스크립트에는 디버거가 빠져있지만 디버거때문에 onload를 사용하였습니다..!)
0
0
콜백 함수를 가진 함수들의 기본을 이해하지 못하는 느낌이 듭니다. 강좌를 다시 듣고 코딩하고 디버거 걸어 따라가면서 감을 잡기 바랍니다. 질문의 답은 어렵지 않으나 질문보다 더 중요한 것을 놓치게 될 것 같네요.
0
답변 감사합니다. 어느정도 감은 오지만 중고급강좌에서 더 확실하게 배워야 할 거 같네요 :)
그리고 foreach문에 대해 여쭤보고자 합니다.
reduce()에서 return으로 반환된 값은 result에 할당되어야 되지 않나요?
왜 반환값이 첫번째 파라미터 값으로 넘어가게 되나요? 그냥 reduce()매소드의 정해진 규칙이라고 보면 될까요?
0
답장이 늦어 미안합니다.
this을 자세하게 설명하려면 사전 설명이 필요합니다. this는 현재 듣는 정도로 마무리하고, 다음 강좌인 "자바스크립트 중고급" 과정에서 논리적으로 접근하고 있으니 자세한 것은 그 강좌를 들으면 될 것 같아요. 위에 작성한 코드에 대해서만 답글을 작성하려고 합니다.
this는 오브젝트, 인스턴스, 호출한 함수 앞에 작성한 오브젝트를 함수에서 참조합니다.
아래 코드에서 show() 함수에서 this가 point 오브젝트를 참조합니다.
var point = {
bonus: 100,
show: function(value){
// this. point.bonus를 참조합니다.
// 100 + 200을 하게 되어 300이 출력됩니다.
web.log(this.bonus + value);
}
};
point.show(200);
------------------------
"this는 함수 내에서 전역변수의 값에 접근할 때 사용한다" 이렇게 이해하면 되는건가요?
==> 아래는 글로벌 변수를 참조하는 형태입니다.
var value = 500;
function getValue(){
// getValue()를 호출하면서 함수 앞에 오브젝트를 작성하지 않으면
// 함수 안에서 this가 글로벌 오브젝트를 참조합니다.
// value 변수가 글로벌 오브젝트에 있으므로 this.value로 값을 구할 수 있습니다.
// "use strict"를 선언하고 함수 앞에 오브젝트를 작성하지 않으면 에러가 발생합니다.
return this.value;
};
console.log(getValue());