2011-09-29 40 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中的参数,有没有办法让函数show中显示HTMLDivElement对象而不传递ID? – manraj82

回答

1

因为该函数是在全局范围内定义的,因此“该”将指的窗口对象。

+0

感谢您的回答,如果我没有将这个作为参数传递给函数显示,有没有办法让HTMLDivElement对象显示在函数展示中而不通过ID – manraj82

+0

还有一点比它更重要。 'obj = {example:function(){alert(this); }}; f = obj.example; f();'也应该提醒'[object Window]'。 “这个”的规则起初有点混乱。 – cHao

相关问题