我想要做的是每次调用函数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();
});
}
答案 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);
(..)
}
}
希望有所帮助,祝新年快乐!