2

好吧,这应该是一个简单的问题,但现在已经让我头疼了两天。我有以下内容:

<a href="javascript:void();" onclick="return manage(id, value)">Add or remove</a>

管理功能如下

function manage(id, param){
    var my_value; 
alert(my_value); // this keeps giving me undefined. I want it to hold the last value of the param

    if(param!=0){ // value not empty, we are removing       
        my_value = remValue(id, param);
    }   
    else if(param==''){ // value is empty, so we are adding 
        my_value = addValue(id, param);
    }   
    alert(my_value);    
}

function addValue(id, param){
    param += 1; 
    return param;

}

function remValue(id, param){
    param -= 1; 
    return param;

}   

整个想法是在添加或删除操作之后将 param 的值分配给 my_value 。请问有什么帮助吗?

4

1 回答 1

4

通过在函数var my_value; 内部定义,您在每次函数调用时将变量重新声明为未定义的值。它仅对该调用是本地的,并且不会持续存在。

如果您需要它来保留该值,您只需var在更高的范围内声明它:

// Declare outside the function...
var my_value;
function manage(id, param){
    alert(my_value); // Should be undefined on first call, 
                     // or hold previous value on subsequent calls after assignment

    if(param!=0){ // value not empty, we are removing       
        my_value = remValue(id, param);
    }   
    else if(param==''){ // value is empty, so we are adding 
        my_value = addValue(id, param);
    }   
    alert(my_value);    
}
于 2012-08-29T18:33:24.013 回答