this 指钟是JavaScript语言中的一个特殊指钟,他在代码运行时,指向调用this语句的当前对象. 如果是事件绑定函数,则指向被绑定的元素本身. <script type= "text/javascript "> //by Go_Rush(阿舜) from http://ashun.cnblogs.com/ alert(this===window) //true 直 接调用的时候,指向window本身 var gorush={ f:function(){ alert(this===gorush) //true } } gorush.f() //指向 gorush对象 document.οnclick=function(){ alert(this===document) //true ,指向 document } /* element.οnclick=function(){ alert(this===element) //true } */ </script> 特别要值得注意的是,当多个对象嵌套的时候, this 是指向最近调用它的那个对象的 obj1={ obj2:{ f:function(){ alert(this===obj1.obj2) //这里 this 并不是指向 obj1的哦。 } } } obj1.obj2.f() 再举一个非常容易出错的例子, 点这里看相关链接 <script type= "text/javascript "> //by Go_Rush from http://ashun.cnblogs.com/ //以下gorush1中 this的用法是错误的,这个错误10个程序员6个犯 var gorush1={ showMsg:function(){alert( "hello,world ")}, doAjax:function(){ new Ajax.Request( "index.php ",{onSuccess:function(){ this.showMsg() }}) } } //gorush2中的才是对的 var gorush2={ showMsg:function(){alert( "hello,world ")}, doAjax:function(){ var self=this; //备份 gorush2对象 new Ajax.Request( "index.php ",{onSuccess:function(){ self.showMsg() }}) } } </script> |
<!-- <span>预留的文字链广告位</span> //--> |
javascript 中的this指针
最新推荐文章于 2024-02-21 23:32:46 发布