Javascript - 每次调用函数时创建新变量

时间:2015-01-02 04:56:20

标签: javascript

我想要做的是每次调用函数loadGrid时创建一个新变量。在下面的函数中,这种情况下的变量为datagrid。我想要这样做的原因是因为我将创建多个表对象,并且每个表对象都需要自己的引用变量来调用filter之类的函数。

我在这里查看了这个解决方案:Convert string to variable name in Javascript。但是,评论说这不是Javascript中的最佳实践。对我想达到的目标有更好的解决方案吗?

var loadGrid = function(dbTableName) {

    $('#'+dbTableName).on('click', function(e){

        $('#tables').find('.active').toggleClass('active');
        $(this).toggleClass('active');

        DatabaseGrid.prototype.fetchGrid = function()  {
            // call the PHP script to get the data
            this.editableGrid.loadJSON("loaddatacustomers.php?db_tablename=" + dbTableName);
        };

        var datagrid = new DatabaseGrid();

        $("#filter").keyup(function() {
          datagrid.editableGrid.filter( $(this).val());
        });

        e.preventDefault();
    });
}

1 个答案:

答案 0 :(得分:1)

你可以创建一个包含所有数据网格的数组!

datagridSet = [];
loadGrid = function(dbTableName){
    (..)
    var datagrid = new DatabaseGrid();
    datagridSet.push(datagrid);
    (..)
}

您可以通过Array[index]表示法访问每个数据网格:)

此外,全局变量不是一个好主意,因为您可以创建自己的伪命名空间。

GridStuff = {
    datagridSet:[],
    loadGrid:function(dbTableName){
        (..)
        var datagrid = new DatabaseGrid();
        this.datagridSet.push(datagrid);
        (..)
    }
}

希望有所帮助,祝新年快乐!