2 ijunxiong ijunxiong 于 2016.01.20 16:23 提问

js定义的类中定义某控件挂事件,事件内部如何引用到定义的类

function AA(obj){
this.a1="12";
this.a2="13";
obj.onclick=function(){
alert(this);//这里的this,其实是obj吧,而不是由AA定义出的对象
//要怎么引用到AA定义出的对象,如cc1()里的this
}
function cc1(){
alert(this);//这里的this是AA定义出的对象吧,
}
}

5个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 16:46
ijunxiong
ijunxiong 这和srcElement 没关系!
接近 2 年之前 回复
showbo
showbo   Ds   Rxr 2016.01.20 17:45

this指向要看执行的上下文,你可以定义一个内部变量var me=this,通过me来调用

         var me = this;
        obj.onclick = function () {
            alert(me.a1)
        }
angus_Lucky
angus_Lucky   2016.01.20 16:46

function AA(obj){
this.a1="12";
this.a2="13";
obj.onclick=function(){
var cvalue=cc1();
console.log(cvalue);
}
}

function cc1(){
console.log("hehe");
return "hehe";
}

不知道是不是你要的答案,这样写就可以了。如果你要cc1返回值,那你就return ""就行了

ijunxiong
ijunxiong   2016.01.20 17:10

哦,我知道了,可以把this给obj作属性,,谢谢各位了

Royal_lr
Royal_lr   Ds   Rxr 2016.01.20 16:46

function cc1(){
alert(this);//这里的this是AA定义出的对象吧,
}

这里是cc1这个对象

ijunxiong
ijunxiong 哦,我说的好像有不对的,不过cc1也不是对象,可能是个window下的私有函数,测试了一下,cc1里的this是window对象
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!