2011-09-29 1 views
0

함수에서 'this'가 함수 표시 창 객체에있는 이유는 'this'가 함수에서 호출 된 객체를 표시하는 이유는 무엇입니까?함수에서 'this'가 함수 표시 창 개체에있는 이유는 'this'가 함수에서 호출 된 개체를 표시하는 이유는 무엇입니까?

function show(x){ 
alert(x)//displays [object HTMLDivElement] 
alert(this)//displays [object Window] 
} 

<div onClick="show(this)">123</div> 
+1

많은 질문을 읽고 웹에서 "javascript this"를 검색하십시오. 질문으로 -1은 연구 노력을 보이지 않습니다 (많은 사이트가 있습니다. –

+0

@ChrisMorgan은 다음 time.one 질문을 할 것입니다, 만약 내가 이것을 함수 show의 인자로 넘겨주지 않는다면, ID를 건네지 않고 함수 show에 HTMLDivElement 객체를 표시하는 방법이 있습니까? – manraj82

답변

1

이 기능은 전역 범위에서 정의되므로 "this"는 창 개체를 참조합니다.

+0

답해 주셔서 감사합니다. 함수 show에서 인수로 넘겨주지 않으면 HTMLDivElement 객체를 함수 show에 ID없이 전달할 수있는 방법이 있습니까? – manraj82

+0

그냥 그 이상입니다. 'obj = {example : function() {alert (this); }}; f = obj.example; f();'는 [object window]를 경고해야합니다. 'this '에 대한 규칙은 처음에는 조금 혼란 스럽다. – cHao

관련 문제