如何从JS中的父对象“ this”访问其功能?

时间:2019-01-15 05:24:28

标签: javascript

(function( $ ) {

    var TagHolder = function(element,options){

        this.property1 = options.p1;
        this.id = 0;

        this.init = function(){
           $('a').on('click',function(e){
              e.preventDefault();

              var id = $(this).attr('id');
              this.id = id;
           });
        }
    }

    $.fn.TagHolderProperty = function(options) {
        return new TagHolder(this, options);
    }
})( window.jQuery );

如何从行this访问行this.property1 = options.p1;中的this.id = id;对象实例,以便设置id属性?

2 个答案:

答案 0 :(得分:1)

使用

self = this;

在您的TagHolder函数中,然后执行

self.id = id;

在您的init函数中

答案 1 :(得分:0)

在父函数的变量中存储对此的引用,然后使用self in引用父函数的上下文,例如self.id

(function( $ ) {

    var TagHolder = function(element,options){
       var self = this;


        this.property1 = options.p1;
        this.id = 0;

        this.init = function(){
           $('a').on('click',function(e){
              e.preventDefault();

              var id = $(this).attr('id');
              self.id = id;
           });
        }
    }

    $.fn.TagHolderProperty = function(options) {
        return new TagHolder(this, options);
    }
})( window.jQuery );