-
이 문제들을 다 풀면 this 정복!problem 2020. 4. 30. 15:00
'this' 키워드가 무엇을 나타냅니까?
A : The function that is currently being invoked.
B : An object that the invoked function points to when executing.
C : A variable used for lexical scope lookup.
더보기answer
B : An object that the invoked function points to when executing.다음의 코드를 실행시킨 후에 result 의 값은 무엇이 될까요?
var x = 10; var strangeAdd = function (y) { var x = 20; return this.x + y }; let result = strangeAdd(10);
더보기answer : 20
틀렸다! 내가 제출한 답은 30인데 20이 정답이었다.
왜냐면 이 함수는 function invocation이라서 this가 global이다.
strangeAdd가 this일 것이라고 생각해서 아직도 헷갈리는 중
내 프로그램에서 'this' 키워드의 의미를 어떻게 결정할까요?
Look to where the function is called at call time to determine how it is called and evaluate from there.
다음의 코드를 실행시킨 후, 콘솔에 무엇이 찍힐까요?
function foo(){ console.log(this); } foo();
더보기answer
window or global object
function invocation이기 때문이다!
다음의 코드를 실행시킨 후, 콘솔에 무엇이 찍힐까요?
var obj = { foo: function(){ console.log(this); } } obj.foo();
더보기answer
obj
다음의 코드를 실행시킨 후, 콘솔에 무엇이 찍힐까요?
var obj = { foo: function(){ console.log(this); } } var fn = obj.foo; fn();
더보기answer
window or global object
this는 실행이 되는 시점에서 결정이 되는 것이기 때문에
fn에 담아주고 fn을 실행시키면 this가 window가 된다.
다음의 코드를 실행시킨 후, 콘솔에 무엇이 찍힐까요?
var obj = { foo: function(){ console.log(this); } } var obj2 = { foo: obj.foo } obj.foo.call(obj2);
더보기answer
obj2
call로 this값을 정해줬기 때문!
'problem' 카테고리의 다른 글
이 문제들을 다 풀면 linked list, hash table 개념 정복! (0) 2020.05.07 이 문제들을 다 풀면 stack, queue 정복! (0) 2020.05.02 Jewels and Stones (Leet code - easy) (0) 2020.04.07 이 문제들을 다 풀면 객체지향 JavaScript, Value vs. Reference 이해 끝! (0) 2020.04.06 이 문제들을 다 풀면 scope 이해 끝 (0) 2020.04.02