javascript - 动态更改 JavaScript 函数

标签 javascript

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

<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。请问有什么帮助吗?

最佳答案

通过在函数内定义 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);    
}

关于javascript - 动态更改 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12184326/

相关文章:

javascript - 具有可变填充的 D3 包布局

javascript - 使用D3.js绘制自定义json映射

javascript - Cordova 中从 Web 到设备文件系统的目录递归复制

javascript - 返回模块时 Backbone Marionette 布局区域未关闭

javascript - Chrome 没有加载所有 webpack JS 源文件,但是 Firefox + Chrome Incognito 可以

javascript - 如何扩展 Array.prototype.push()?

javascript - 如何获取包含不重复项的单个数组及其值的总和。有序描述

javascript - AngularJs指令一种数据绑定(bind)不起作用

javascript - 随着帧数的增加尝试创建多个障碍物

javascript - Django,使用ajax更新页面