在Object中引用自己的匿名函数键Javascript

时间:2016-06-18 20:56:25

标签: javascript javascript-objects

我有这个对象:

var crudConfig = function($wizard, $formModal, $deleteModal) {

'use strict';

return {


    handleOnShowFormModal : function() {

        $formModal.on('show.bs.modal', function(event) {
               ...................
                    this.fillForms(data);
               ....................
        });

        return this;
    },
    fillForms : function(data) {
        //do stuff
        return this;
    }
 }
}

当我用param调用fillForms时会出现问题。

Uncaught TypeError: this.fillForms is not a function

由于fillForms键是一个匿名函数,如何从对象内部调用它?在其他相关问题上,我只发现如果键具有字符串值并且我这样调用如此引用自身:this.fillForms

1 个答案:

答案 0 :(得分:2)

回调中的

this引用$formModal元素。您需要做的是在调用事件侦听器之前存储引用变量中对象的this,并使用回调中的变量来访问该对象。

就像这样:

handleOnShowFormModal : function() {
  var _this = this
  $formModal.on('show.bs.modal', function(event) {
    _this.fillForms(data); 
  });

  return this;
},