Javascript 如何从对象中引用方法

Javascript 如何从对象中引用方法,javascript,object,methods,Javascript,Object,Methods,调试时,我需要从子对象调用object showMe()方法,但这无法识别showMe()方法 如何从方法中引用对象方法 代码如下- function myObj(n) { this.name = n; this.frame = $('<div />'); var subFrame = $('<div />'); subFrame.on("click", function () {

调试时,我需要从子对象调用object showMe()方法,但这无法识别showMe()方法

如何从方法中引用对象方法

代码如下-

 function myObj(n) {
        this.name = n;
        this.frame = $('<div />');
        var subFrame = $('<div />');
        subFrame.on("click", function () {


            **//how do I reference this.showName() from here ?**


        });
        this.frame.append(subFrame);
        this.showName = function (nn) {
            alert(nn);
        };
    }

    $(function () {
        var a = new myObj("Test");
    });
函数myObj(n){
this.name=n;
this.frame=$('');
var子帧=$('');
子帧上(“单击”,函数(){
**//如何从这里引用此.showName()**
});
this.frame.append(子帧);
this.showName=函数(nn){
警报(nn);
};
}
$(函数(){
var a=新的myObj(“测试”);
});

执行此操作的常用方法是定义
var,该var=this
,并参考函数体中的
this


您也可以使用
bind
,但随后放弃了本地作用域。

您实际上可以将对象的引用作为数据传递到
on()

function myObj(n) {
    this.name = n;
    this.frame = $('<div />');
    var subFrame = $('<div />');

    subFrame.on("click", {myObj : this}, function (e) {

        e.data.myObj.showName();

    });

    this.frame.append(subFrame);
    this.showName = function (nn) {
        alert(nn);
    };
}

$(function () {
    var a = new myObj("Test");
});
函数myObj(n){
this.name=n;
this.frame=$('');
var子帧=$('');
子帧.on(“click”{myObj:this},函数(e){
e、 data.myObj.showName();
});
this.frame.append(子帧);
this.showName=函数(nn){
警报(nn);
};
}
$(函数(){
var a=新的myObj(“测试”);
});