this是什么

this在javascript中 情况是不同与java  c++, 

  伦理片 http://www.dotdy.com/

谁调用了  this对象所在的函数,  this就指向谁

 

this引用的对象被 称为函数的 上下文  ,它不是由如何声明函数,而是由如何调用函数决定的.

 

根据函数如何被调用,同一个函数可以拥有不同的上下文

 

Js代码   收藏代码
  1. <script type="text/javascript">     
  2. //this是什么  
  3. var o1={handle:'o1'};                                 
  4. var o2={handle:'o2'};                                 
  5. var o3={handle:'o3'};             
  6. window.handle='window';  
  7.   
  8. function whoAmI(){  
  9.     return this.handle;           
  10. }     
  11.       
  12. o1.identifyMe =whoAmI;        
  13.   
  14. alert(whoAmI());  //结果  window  
  15. alert(o1.identifyMe()); //结果o1  
  16. alert(whoAmI.call(o2)); //结果o2  
  17. alert(whoAmI.apply(o3)); //结果o3  
  18. </script>   

 

--------------------------------------------------------------------------

 

顶层函数是window对象的属性(方法) , 下面的test8(),就是顶层函数

 

Js代码   收藏代码
  1. <script type="text/javascript">   
  2.     function test8()  
  3.     {  
  4.         alert(this==window)                   
  5.     }  
  6.     test8();  
  7.   
  8.   
  9.   
  10. </script>  

 

上面代码执行结果为 true,  test8函数被包含在一个名为window的全局对象中,test8函数是window对象的一个方法.所以this 指向window全局对象

 

----------------------------------------------------

 

Js代码   收藏代码
  1. <script type="text/javascript">   
  2.     function test8()  
  3.     {  
  4.         alert(this==window)                   
  5.     }  
  6.   
  7.   
  8.   
  9. </script>  
  10.   
  11. <input type="button" value="test 8"  id="bu4" οnclick="test8()" /><br/>  

 

上面代码执行结果为 true  ,this是window对象

 

---------------------------------------------------

 

Js代码   收藏代码
  1. <script type="text/javascript">     
  2.     function test8()  
  3.     {  
  4.         alert(arguments[0].id)                    
  5.     }             
  6. </script>  
  7. <input type="button" value="test 8"  id="bu4" οnclick="test8(this)" class="cla"/>  

 

上面代码执行结果为bu4, 这里的this是  button对象

-------------------------------------------------------

 

Js代码   收藏代码
  1. <input type="button" value="test" id="bu5"/><br/>  
  2. <script type="text/javascript">     
  3.     function test11()  
  4.     {  
  5.         var obj=document.getElementById('bu5');  
  6.         obj.οnclick=function(){  
  7.             alert(this.id)  
  8.         }                 
  9.     }  
  10.     test11()              
  11. </script>  

 

上面代码执行结果为bu5 , 这里的this是  button对象 ,因为obj.οnclick=function(){}  ,是为button注册了个匿名函数 ,这个匿名函数 是obj对象(button)的 函数.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值