2016-10-09 2 views
2

노드에서이 예제에서는 어떻게 정의되지 않습니까?노드에서이 내부 함수는 정의되지 않음

엄격 모드를 사용하지 않기 때문에 함수 내부에서 전역 개체에 액세스 할 수 있어야합니다.

this.foo = "bar"; 

function fun() { 
    console.log(this.foo); 
} 

fun(); // undefined 
+0

@Mohammad 노드에 그것 – Lev

+0

않는 글로벌 오브젝트'global'을 사용하여 수득된다. –

답변

0

MDN의 약 "use strict" 모드를 참조하십시오.

우선 엄격 모드의 함수에 this으로 전달 된 값은 강제로 개체가 아니어도됩니다 (예 : "박스형"). 일반 함수의 경우 this은 항상 객체입니다. 객체 값이 this 인 경우 제공된 객체 또는 부울, 문자열 또는 숫자로 호출 된 경우 boxed 값 this; 또는 엄격 모드 기능을 위해 ... 정의되지 않은 또는 null this 호출하면 전역 객체는, 지정된 this은 객체로 박스되지 않으며, 지정되지 않은 경우, this은 정의되지 않습니다 : 가장 좋은 설명은

예로는, 기준 참조 : "Securing" JavaScript (MDN)

은 또한 유래이 포스트 참조 : In node.js, how the 'use strict' statement is interpreted?

+0

아니요, node.js는 엄격 모드를 단독으로 활성화하지 않습니다. OP는 그가 "엄격한"것을 사용하지 않는다고 말합니다. – Bergi

+0

당신은 @Bergi가 맞습니다,'node --use_strict' 플래그로'npm' 스크립트를 실행하고 있습니다. – jherax

관련 문제