Javascript:访问对象的引用变量

时间:2014-12-28 23:14:04

标签: javascript html dom

我不确定我是否正确地问这个问题,但是如何访问对象的引用变量?

例如,

var datagrid = new DataBaseGrid();
console.log(datagrid);

DatabaseGrid.prototype.initializeGrid = function(grid) {

    var self = this;
    console.log(self); //self references same object as datagrid

    grid.setCellRenderer("action", new CellRenderer({ 
        render: function(cell, id) {                 
              cell.innerHTML+= "<i onclick=\""+self+".deleteRow("+id+");\" class='fa fa-trash-o' ></i>";
              console.log(cell.innerHTML);
        }
    })); 
};

对于cell.innerHTML,我想用对象引用self替换datagrid。因此,如果id为55,则单元格的HTML将呈现如下:

<i onclick="datagrid.deleteRow("55")"; class='fa fa-trash-o' ></i>

相反,点击该元素时出现错误Uncaught SyntaxError: Unexpected identifier (index):1

我想要这样做的原因是因为我有其他DataBaseGrid对象将使用initializeGrid,我不想硬编码只有一个对象引用它。

1 个答案:

答案 0 :(得分:4)

您正在尝试将对象注入字符串。字符串表示可能看起来像[object DatabaseGrid],结果是HTML:

<i onclick="[object DatabaseGrid].deleteRow(1);" class='fa fa-trash-o'></i>

onclick中存在语法错误。这是不使用内联事件处理程序或innerHTML的参数;相反,使用DOM:

var i = document.createElement('i');
i.className = 'fa fa-trash-o';
i.onclick = self.deleteRow.bind(self, id);
cell.appendChild(i);