对于Javascript,如果获取未捕获的TypeError不是一个函数
我试图用javascript编写一些匿名函数IFFE的东西,我不明白为什么会出现这个错误对于Javascript,如果获取未捕获的TypeError不是一个函数,javascript,jquery,javascript-events,anonymous-types,Javascript,Jquery,Javascript Events,Anonymous Types,我试图用javascript编写一些匿名函数IFFE的东西,我不明白为什么会出现这个错误 未捕获类型错误:dM.getResources不是一个函数 拨弄 是什么原因造成的 reportGroupDataManager(通常这是reportGroupDataManager.js文件) 数据(当前占位符) IFFE (function(jQ, dM, data) { var self = this; var initializePage = function () {
未捕获类型错误:dM.getResources不是一个函数
拨弄
是什么原因造成的
reportGroupDataManager(通常这是reportGroupDataManager.js文件)
数据(当前占位符)
IFFE
(function(jQ, dM, data) {
var self = this;
var initializePage = function () {
console.log('in init');
};
dM.getResources()
.done(initializePage, function(result) {
console.log('in fx');
console.log(result);
console.log(result.CannotDeleteWithChild);
});
})($, reportGroupDataManager, data);
因此,通常dM.getResources()
将从reportGroupDataManager获取数据,其中result
是一个对象
但对于这段代码,我不确定为什么会出现错误
同上-->
reportGroupDataManager
是一个构造函数,而不是一个对象。但是您需要一个由reportGroupDataManager
创建的对象。因此,生命应该是这样的:
(function(){
// ...
})($, new reportGroupDataManager(), data);
reportGroupDataManager
是一个构造函数,而不是一个对象。但是您需要一个由reportGroupDataManager
创建的对象。因此,生命应该是这样的:
(function(){
// ...
})($, new reportGroupDataManager(), data);
dM不是构造函数,因此不能使用“this”作为dM的参考 您需要像这样“新建”函数
函数ReportGroupDataManager(){
this.getResources=函数(){
回波信号
}
}
让reportGroupDataManager=新建reportGroupDataManager()
(功能(jQ、dM、数据){
var self=这个;
var initializePage=函数(){
log('in init');
};
dM.getResources()
.done(初始化页、函数(结果){
console.log('in fx');
控制台日志(结果);
console.log(result.CannotDeleteWithChild);
});
})($,reportGroupDataManager,数据)代码>dM不是构造函数,因此不能使用“this”作为dM的参考
您需要像这样“新建”函数
函数ReportGroupDataManager(){
this.getResources=函数(){
回波信号
}
}
让reportGroupDataManager=新建reportGroupDataManager()
(功能(jQ、dM、数据){
var self=这个;
var initializePage=函数(){
log('in init');
};
dM.getResources()
.done(初始化页、函数(结果){
console.log('in fx');
控制台日志(结果);
console.log(result.CannotDeleteWithChild);
});
})($,reportGroupDataManager,数据)代码>顺便说一句,构造函数不需要返回任何东西。甚至不是此
(在您的情况下是self
)未捕获类型错误:reportGroupDataManager不是constructor@MillRunner:您必须有输入错误或其他原因,因为它可以工作:@MillRunner:它甚至可以与您的jsfiddle:对象一起工作。顺便说一句,构造函数不需要返回任何内容。甚至不是此
(在您的情况下是self
)未捕获类型错误:reportGroupDataManager不是constructor@MillRunner:您必须有输入错误或其他原因,因为它可以工作:@MillRunner:它甚至可以与您的jsfiddle:对象一起工作未定义Accught TypeError:(中间值)不是functionUncaught TypeError:(中间值)不是函数
(function(){
// ...
})($, new reportGroupDataManager(), data);