에서 참조 무엇 :이 다음과 같은 코드를 사용하여 자바 스크립트 개인 방법
function Node(){
....
function foo(request){
for (var name in this) {
log(name +" is "+this[name]);
if(!(name == 'all' || typeof this[name] == 'function')){
request[name] = this[name];
}
}
return ...
};
}
나는 (민간 기능 foo
가 호출 될 때 this
가 포함 된 개체를 참조하지 않는 것에 놀랐다 Node
의 인스턴스). 왜 그런가요? 물론
내가 좋아하는 뭔가를 할 수 :
function Node(){
var ref = this;
....
}
및 foo
에 this
로 ref
를 사용하지만, this
가 포함 된 객체에 대한 참조가있는 민간 방법을 선언하는 방법은 무엇입니까?
"this는 함수를 호출하는 데 사용 된 객체를 참조하지만 Node의 public 함수에서 foo를 호출했습니다. this.publicFoo = function() {... foo(); ...};) . 어떻게 이것이 아직도 창문을 가리키는가? 환호 –
'this'는 '.'왼쪽의 개체를 나타냅니다. 메소드가 호출 될 때. 하지만 "."없이 전화하면 (예 : foo();)는 window.foo()를 의미합니다. 정의 된 위치는 문제가되지 않지만 호출 방법은 중요합니다. –