javascript里的this例子讲解

网上看到一篇关于this的讲解,有时候还是回搞错this的上下文,在这里再复习一下

原文:http://www.cnblogs.com/miqi2214/archive/2009/04/10/1433202.html


function clickFun(value,elemID){
this._value = value;

this._elem = document.getElementById(elemID);

this._elem.ButtonFun = this;//this指向clickFun对象

this._elem.onclick = this.clickHandler;//来自与原型
}

clickFun.prototype.clickHandler = function(){

//这里为什么this是指向_elem的引用,即指向document.getElementById(elemID);
//因为clickHandler赋给了onclick,而onclick的调用者是_elem,所以他的执行上下文为_elem对象
//所以buttonFun是指向clickFun的引用
var buttonFun = this.ButtonFun;

var value = (buttonFun && buttonFun._value) ? buttonFun._value : "unknow value";

alert("value" + value);

alert("this.value" + this.value);
}

window.onload = function(){
new clickFun("赋给程序的值","bt");
}




<button type="button" value="我是按钮的值" id="bt">click me~</button>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值