How are variables unavailable?

I have the following jquery code:

$.ajax({
    url: 'somefile.php',
    type: "POST",
    data: "",
    dataType: "json",
    async: false,
    success: function (data) {
                var var1  = something;
                var var2  = something;
                var var3  = something;
                var var4  = something;
                for (var i = 0; i < data.length; i++) {
                    $('.somediv').html('');
                    $('.somediv').append('Somehtml');
                }
                some_function_declared_later(var1, var2, var3, var4);
             }

At compile time, I get an error: 'var1','var2','var3' & 'var4' are used out of scope. However, I see no problems, as they were declared in the same function in which they are used.

Please, help!

Update: Could this have anything to do with the declaration some_function_declared_lateroutside the current function ???

+4
source share
1 answer

. "" . , , () , , , , , .

success :

function (data) {
    for (var i = 0; i < data.length; i++) {
        var var1  = data[i][0];
        var var2  = data[i][1];
        var var3  = data[i][2];
        var var4  = data[i][3];
        $('.somediv').html('');
        $('.somediv').append('Somehtml');
    }
    some_function_declared_later(var1, var2, var3, var4);
 }

... . .

:

, " -, -".

, . JavaScript, , , , "" , . jslint, , ​​ ( " " ). (: jslint "", , .) JavaScript ​​, var , JavaScript ( ) , . success :

function (data) {
    var var1, var2, var3, var4;
    for (var i = 0; i < data.length; i++) {
        var1  = data[i][0];
        var2  = data[i][1];
        var3  = data[i][2];
        var4  = data[i][3];
        $('.somediv').html('');
        $('.somediv').append('Somehtml');
    }
    some_function_declared_later(var1, var2, var3, var4);
 }

: var

, , . , . , undefined ( data.length is 0), .


:

- some_function_declared_later ???

. , some_function_declared_later , some_function_declared_later, vars.

, var, . , :

function some_function_declared_later(a, b, c, d) {
    // ....
}

... ( ).

:

var some_function_declared_later = function(a, b, c, d) {
    // ....
};

... some_function_declared_later ( var ), undefined, success , some_function_declared_later var. ( , , .)

+7

All Articles