객체안에 함수를 넣고 그 함수안에 또 함수를 넣어서 this를 출력하는걸 해봤는데
설명은 제일 안쪽 function()은 전역함수가 되서 함수내부에서 console.log(this)
는 window를 출력한다고 알려주셨는데요
코드를 계속 따라쳐도 계속 undefined가 나오길래 찾아보니 use strict가 선언되있어서더라구요.
그렇다면 use strict를 선언했을때는 this가 함수안에들어있기때문에 객체안에 없다고 판단해서
undefined가 출력되는건가요?
비슷한 궁금증이 생겨서 임시 코드를 만들어봤는데요.
함수가 전역함수가 된다는게 좀 의아한게 예를들어 객체안의 함수안의 함수를 만들어봤거든요?
let normal = {
fck : function(){
function fck1(){
console.log('하잉');
}
}
}
normal.fck()
fck1()
이런 함순데 객체안의 벨류값으로 함수를 넣었고 normal.fck()으로 함수를 만들어줬는데요.
fck1()은 실행이 안되더라구요. 전역함수인데 왜 블록 밖에서는 함수가 정의되지 않았다고 뜨는건가요?