如何防止jquery覆盖"this"

sub*_*arb 2 javascript jquery

我在javascript中有以下类:

function User(aJid){
    this.jid = aJid;
    this.name = '';
    this.uni = '';
    this.edad = '';
    this.foto = '';
    this.avatar = '';
    this.initialize2 = function(){

        $('#edit_vcards').on('click', '#enviar_vcard', function(){
            //alert("enviando...");
            console.log(this);
        });
    };
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个方法"initialize2",它将函数绑定到DOM中的某些元素.在那里我做了一个console.log(this)打印我们绑定方法的DOM元素而不是正在执行该方法的对象initialize2.如何从该功能访问该对象?它就像绑定的函数的范围是整个DOM而不是对象.无论如何要做我想做的事情?

epa*_*llo 10

function User(aJid){
    this.jid = aJid;
    this.name = '';
    this.uni = '';
    this.edad = '';
    this.foto = '';
    this.avatar = '';
    this.initialize2 = function(){
    var that = this;  //store a reference to maintain scope

        $('#edit_vcards').on('click', '#enviar_vcard', function(){
            //alert("enviando...");
            console.log(that);  //use that variable here
        });
    };
Run Code Online (Sandbox Code Playgroud)