我有一个代码,当我尝试运行时,我调用该函数时得到错误。我不知道他发生了什么?帮助PLZ ......
jQuery(document).ready(function($) {
//load config file
$.getScript(baseURl+"/wsj/wconf.js", function(data, textStatus, jqxhr) {
console.log(data); // it is ok
jq(); // Uncaught TypeError: undefined is not a function
//_cusApp.ini(); //Uncaught TypeError: Cannot call method 'ini' of undefined
var _cusApp = {
ini: function (inc) {
console.log('ini');
},
};
var jq = function ( ){
$(document).height(); // jquery not availble here
}
});
});
答案 0 :(得分:6)
它是关于在声明它之前调用jq()
函数。
jq
未定义,因为它尚未声明......!
如果声明命名函数而不是匿名函数,整个代码将起作用。
由于匿名函数是在运行期间创建的,因此在执行赋值之前它不可用。
相反,由于命名函数是在 parse 时间内声明的,因此即使在调用它之后声明它也可以使用它。
myFunction(); // Wrong, it's undefined!
var myFunction = function() {};
myFunction(); // OK, now is declared and it can be invoked
myFunction(); // As the function has been already parsed, it is available!
function myFunction() {};
myFunction(); // OK!
答案 1 :(得分:3)
应该是
jQuery(function($) {
//load config file
$.getScript(baseURl+"/wsj/wconf.js", function(data, textStatus, jqxhr) {
console.log(data); // it is ok
//these two variable declaration shoule happen before their usage
var _cusApp = {
ini: function (inc) {
console.log('ini');
},
};
var jq = function ( ){
$(document).height(); // jquery not availble here
}
jq();
_cusApp.ini();
});
});
答案 2 :(得分:0)
首先你声明一个函数然后调用她,因为javascript一个接一个地读取,当你调用函数jq()时它仍然没有被声明..
'对不起我的英语'