如何从对象中引用方法

时间:2014-09-09 10:14:07

标签: javascript object methods

我需要从子对象调用对象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");
    });

2 个答案:

答案 0 :(得分:1)

执行此操作的常用方法是定义var that = this,并在函数正文中引用that

你也可以使用bind,但是你放弃了本地范围。

答案 1 :(得分:0)

您实际上只需将对象的引用传递给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");
});

FIDDLE