在对象中引用自身匿名函数键Javascript
我有一个目标:在对象中引用自身匿名函数键Javascript,javascript,javascript-objects,Javascript,Javascript Objects,我有一个目标: var crudConfig = function($wizard, $formModal, $deleteModal) { 'use strict'; return { handleOnShowFormModal : function() { $formModal.on('show.bs.modal', function(event) { ...................
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;
}
}
}
当我使用参数调用fillForms时,问题出现了
Uncaught TypeError: this.fillForms is not a function
由于fillForms键是一个匿名函数,如何从对象内部调用它?在其他相关问题上,我只找到了在键有字符串值且我这样调用时如何引用自身:
this.fillForms
回调中的this
引用了$formModal
元素。您需要做的是在调用事件侦听器之前将引用该对象的存储在变量中,并在回调中使用该变量访问该对象
就这样,
handleOnShowFormModal : function() {
var _this = this
$formModal.on('show.bs.modal', function(event) {
_this.fillForms(data);
});
return this;
},
回调中的此
引用$formModal
元素。您需要做的是在调用事件侦听器之前将引用该对象的存储在变量中,并在回调中使用该变量访问该对象
就这样,
handleOnShowFormModal : function() {
var _this = this
$formModal.on('show.bs.modal', function(event) {
_this.fillForms(data);
});
return this;
},
您应该使用构造函数而不是工厂函数。可能重复的应该使用构造函数而不是工厂函数。欢迎使用可能重复的构造函数。还有其他解决此问题的方法,比如使用将this对象绑定到回调对象。但是,这是最简单的。如果你能给我举个例子,我会很高兴学习…:)哦,查看@melpomene对你的问题的评论中的链接。接受的答案包含详细信息。欢迎您。还有其他解决此问题的方法,比如使用将this对象绑定到回调对象。但是,这是最简单的。如果你能给我举个例子,我会很高兴学习…:)哦,查看@melpomene对你的问题的评论中的链接。公认的答案包含详细信息。