返回带参数的对象

时间:2015-11-30 19:56:58

标签: javascript object parameters return

我有一个名为'sheet1'的对象

var nr = 1;
function Sheet(title){
    this.div = document.createElement('div');
    this.div.dataset.sheetNr = nr;
    this.div.dataset.sheetTitle = title;
    document.getElementById("sheets").appendChild(this.div);
    nr++;
}

Sheet.prototype = {
    constructor: Sheet,
    get : function(data){
        return this.div.dataset.data;
    }
}

var sheet1 = new Sheet("Title1");

现在我调用函数

sheet1.get("sheetNr");

它返回'undefined'!...我该如何解决这个问题?

// console.log(data); outputs sheetNr

但是当我改变我的功能时

Sheet.prototype = {
    constructor: Sheet,
    get : function(){
        return this.div.dataset.sheetNr;
    }
}

然后打电话     sheet1.get(); 在这种情况下,它返回工作表的编号... 1 ...

http://codepen.io/anon/pen/rOXZjq?editors=101

1 个答案:

答案 0 :(得分:3)

您没有在您创建的div上定义数据属性,因为它不会像调用那样存在。当您致电this.div.dataset.sheetNr时,您实际上正在点击已定义的属性。要使用变量data作为索引,您需要调用: 而是this.div.dataset[data]