未捕获的类型错误:不是函数,但函数存在
Uncaught TypeError: not a function, but the function exists
我的js文件中有以下内容:
var Field_File = function( _ )
{
var _objects = null;
var Init = function( instance, json )
{
// load _objects
}
var ImgLoad = function( elem, type )
{
//do things with _objects
}
}
现在在我的PHP中,我有:
<img id="file_uploader2_button" src="http://localhost/img/icons/up.png" onload="Field_File.ImgLoad(this, 'img');">
我已经验证了JS正在正确加载到我的页面,我通过相同的PHP页面调用其他JS函数没有问题:
body onload="Field_File.Init( '1', {$json});"
但是我现在得到:
Uncaught TypeError: Field_File。ImgLoad不是一个函数
我在这个电话中错过了什么吗?
将你的模块(一个文字对象)的声明改为
var Field_File = {
Init: function( instance, json ){
},
ImgLoad: function( elem, type ){
//do things
}
}
如果你想要一个作用域来保护一些私有变量,使用IIFE:
var Field_File = (function(){
var _objects = null;
var Init = function( instance, json ){
// load _objects
}
var ImgLoad = function( elem, type ){
//do things with _objects
}
return {
Init:Init,
ImgLoad:ImgLoad
}
})();
可能有很多变化,所以重要的是了解这里发生了什么,以便您可以根据自己的需求进行调整。
使用this
将ImageLoad
更改为Field_File的属性。当在这里用var
声明它时,你在某种程度上模拟了一个私有属性。
var Field_File = function( _ )
this.Init = function( instance, json )
{
}
this.ImgLoad = function( elem, type )
{
//do things
}
}
相关文章:
- IE9的HTML5 Canvas getImageData()函数存在问题
- 如何添加函数中存在的所有参数
- 如何将一个函数附加到一个不存在的元素上
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 运行时不存在Javascript函数
- 如何使用函数来确定 Javascript 数组中是否存在值
- 在运行Javascript/jQuery中的函数之前,检查元素是否存在是否更具性能
- TypeError:$(..).higharts不是函数-现有解决方案不起作用-Yeoman生成器存在问题
- 检查D3.js中的函数中是否存在URL
- 在Require.js中,如果Require()是一个函数,那么Require.config()是如何存在的
- javascript className函数存在问题
- this.function不是函数错误,但函数存在
- jquery中的click函数存在问题
- 与变量值同名的函数存在,但是接收到typeError,为什么?
- create_row()函数存在问题
- JavaScript:重构对象中的方法和函数存在问题
- 为什么getUTCSeconds和getUTCMilliseconds函数存在?
- 匿名函数和命名函数存在疑问
- 未捕获的类型错误:不是函数,但函数存在
- 当有一个警报函数存在时,回调会被触发,如果没有警报,它不会被触发