首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

this运用帮助

2012-11-23 
this使用帮助我想让div的onclick事件输出division element,怎么处理我对this还是不清楚呀3 楼tidus2008-

this使用帮助



我想让div的onclick事件输出'division element',怎么处理
我对this还是不清楚呀 3 楼 tidus 2008-11-16   //alert(obj.m_Text);
alert(new JSClass().m_Text); 4 楼 afcn0 2008-11-16   给你弄错了,是这样的,你在div上面事件处理函数只能得到div这个对象,而这个对象和你new的对象之间没有关系,必须叫div下面有原来this对象的引用才可以找到
function JSClass()    
{    
  this.m_Text = 'division element';    
   this.m_Element = document.createElement('DIV');    
   this.m_Element.innerHTML = this.m_Text;    
   this.m_Element.thisWrap=this;      
   this.m_Element.onclick=this.ToString;    
}    
    
JSClass.prototype.Render = function()    
{    
    document.body.appendChild(this.m_Element);    
}         
 
JSClass.prototype.ToString = function()    
{    
         alert(this.thisWrap.m_Text);    
 
         
};   
另外,attachEvent上去的函数会丢失事件发生的html对象this. 5 楼 tidus 2008-11-17   //事件绑定时,this指向的是当前对象
//事件触发时,this指向的是window;

帮你up, 继续研究;

实例声明和调用实例方法都没什么可说的,元素的click事件的绑定到了一个实例的方法,那么通过addEventListener绑定到的方法是拷贝过后的,所以this指的是html元素,这个元素没有m_Text属性(m_Text属性是属于JSClass的实例的,即属于jc的),所以点击元素显示undefined,attachEvent绑定的事件会将函数复制到全局,此时this指的是window对象,点击元素也会显示“undefined”。只有在调用jc.ToString()方法是,this指的是jc这个对象,因为jc拥有m_Text,所以能够显示“division element”。 Long Way

热点排行