是什么导致错误"未捕获的TypeError:数字不是函数"

hoo*_*ter 8 javascript

我有一个更新表单的onchange事件,并在更新过程中调用一个函数来计算运费.我不确定为什么,但是当我尝试调用该函数时,我收到以下错误:

Uncaught TypeError: number is not a function

该函数shipping看起来像这样:

function shipping( weight )
{
    var flat

    switch( weight )
    {
        case 1:
        case 2:
        case 3:
            flat = 32.00;
            break;

        case 4:
            flat = 18.50;
            break;

        case 5:
            flat = 15.80;
            break;

        case 6:
            flat = 14.00;
            break;

        case 7:
            flat = 12.71;
            break;

        case 8:
            flat = 11.75;
            break;

        case 9:
            flat = 11.00;
            break;

        case 10:
            flat = 10.40;
            break;

        case 11:
            flat = 9.91;
            break;

        case 12:
            flat = 9.50;
            break;

        case 13:
            flat = 9.15;
            break;

        case 14:
            flat = 8.86;
            break;

        case 15:
            flat = 8.86;
            break;

        case 16:
            flat = 8.38;
            break;

        case 17:
            flat = 8.18;
            break;

        case 18:
            flat = 8.00;
            break;

        case 19:
            flat = 7.84;
            break;

        case 20:
            flat = 7.70;
            break;

    } // switch

    var flat_fee = flat * weight;
    var mile_fee = distance * 0.90;

    var shipping_fee = flat_fee + mile_fee;
    simpleCart.shippingTest = shipping_fee;
    return shipping_fee;
} // shipping
Run Code Online (Sandbox Code Playgroud)

我现在正在路过1.该变量distance来自在运行此函数之前完成的ajax调用.该函数如下所示:

function get_distance( zip )
{

    $.getJSON(
        'distance.php',
        { zip:zip },
        function(json)
        {
            distance = json 
        })

} // get_distance
Run Code Online (Sandbox Code Playgroud)

我检查过以确保变量distance已设置.

控制台说未被捕获的类型错误正在我呼叫的线路上徘徊shipping(1).有关为什么会发生这种情况的任何想法?

Sam*_*eff 23

您是否在shipping任何地方使用变量?听起来像function运输被覆盖使用它作为variable一个数值为1.

它不在您发布的代码中(也不是shipping(1)您提到的电话).