javascript - 如何更改此 Javascript 以不使用全局变量?

标签 javascript

我在想出如何控制程序流而不是在我的网络应用程序中将全局变量与 Javascript 一起使用时遇到了一些麻烦。在此示例中,当调用 get_notes() 时,收到的笔记的 id 存储在 current_note_ids 数组中。当调用 add_to_discussion() 时,current_note_ids 作为参数发送到服务器请求。如果不将 current_note_ids 作为全局变量,我该如何做到这一点?

<script type="text/javascript">
    var current_note_ids = [];

    function add_to_discussion(){
        $.post('/add_to_discussion',{current_note_ids:current_note_ids});
    }

    function get_notes(){
        $.post('/get_note_combination',{}, function(data) {            
            current_note_ids = []; // clear existing note details
            for (i in data.notes) {
                current_note_ids.push(data.notes[i].guid);
            }
        }
    }

    $(document).ready(function() {

        $('#add_to_discussion_button').click(function(){
            add_to_discussion();
            return false;
        });

        $('#get_notes_link').click(function(){
            get_notes();
            return false;
        });

    });

</script>

最佳答案

这将使用 closure 从全局范围中删除所有代码

(function () {

    var current_note_ids = [];

    function add_to_discussion(){
        $.post('/add_to_discussion',{current_note_ids:current_note_ids});
    }

    function get_notes(){
        $.post('/get_note_combination',{}, function(data) {            
            current_note_ids = []; // clear existing note details
            for (i in data.notes) {
                current_note_ids.push(data.notes[i].guid);
            }
        }
    }

    $(document).ready(function() {

        $('#add_to_discussion_button').click(function(){
            add_to_discussion();
            return false;
        });

        $('#get_notes_link').click(function(){
            get_notes();
            return false;
        });

    });

})();

关于javascript - 如何更改此 Javascript 以不使用全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128946/

相关文章:

javascript - 将事件监听器添加到 svg 的动态元素

javascript - Bootstrap 幻灯片动画不起作用

javascript - 是否可以在 Javascript 中创建带有前缀的 XML 节点?

javascript - Razor 将特殊字符传递给 JavaScript 函数

javascript - 从树中获取 id

javascript - 折线图上的渐变填充 (Highcharts)

javascript - Jit Tree JS 和 Assets 预编译错误

javascript - 阅读有关数据库结果的更多信息

javascript - 无法在 PrestaShop 1.6 的脚本标签中添加数据属性

javascript - 有人可以解释javascript原型(prototype)继承吗