Jquery:undefined不是一个函数

Pra*_*war 0 javascript jquery

我有一个下面的代码,当我尝试运行时,我调用该函数时得到错误.我不知道他发生了什么?帮助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   
                }
        }); 

    });
Run Code Online (Sandbox Code Playgroud)

Mat*_*zer 6

它是关于jq()在声明之前调用函数.

jq 是未定义的,因为它还没有被宣布......!

更新(@David Barker建议)

如果声明命名函数而不是匿名函数,则整个代码将起作用.

由于匿名函数是在运行时创建的,因此在执行赋值之前它不可用.

相反,由于命名函数是在解析时声明的,因此即使在调用它之后声明它也可用于代码.

匿名函数的示例

myFunction(); // Wrong, it's undefined!

var myFunction = function() {};

myFunction(); // OK, now is declared and it can be invoked
Run Code Online (Sandbox Code Playgroud)

命名函数的示例

myFunction(); // As the function has been already parsed, it is available!

function myFunction() {};

myFunction(); // OK!
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2924 次

最近记录:

12 年,4 月 前