나는 이것을 사용하기 전에 with
을 사용하는 것이 좋습니다. 나는 그것이 어떻게 작동 하는지를 배우기에 호기심이있다. (자바 스크립트에서 범위를 파악하려고한다).With 블록의 변수 선언
나는이 같은 일부 코드가있는 경우 :이 같은 뭔가 foo는 변경하는 경우, 그러나
function foo(obj) {
with (obj) {
b = 2;
}
}
var o1 = {
a: "something"
};
foo(o1);
console.log(o1.b) // This outputs undefined (makes sense)
console.log(b) // This outputs 2 (makes sense)
을 :
function foo(obj) {
with (obj) {
var b = 2; // I use var b instead of b
}
}
내가 foo는에 O1 전달, 다시, O1은 더이 없습니다 속성 b. 왜 이런거야? 나는 var
을 사용하여 obj의 범위 안에 b를 선언 했으므로, 속성은 전역 범위 대신 o1 내부에 만들어 질 것이라고 생각했습니다.