2016-07-27 36 views
0

Supouse我有一個方法在表格的單元格中插入一個值:使用方法在JavaScript

var objeto = { 
    row: function(rowId){ 
     return { 
      cell: function(cellClass){ 
       return { 
        set: function(val){ 
        document.querySelector(rowId+' '+cellClass).innerHTML = val; 
        } 
       } 
       //Or just return the value 
      } 
     } 
    } 
}; 

我知道插入值,我需要使用:

objeto.row('#rowid').cell('.cellclass').set('hello'); 

但如果我想要使用單元格值:

var data = objeto.row('#rowid').cell('.cellclass'); 

我需要使用什麼方法?

回答

0

你可以用以下結構:

var objeto2 = { 
    row: function(rowId){ 
     return { 
      cell: function(cellClass){ 
       return { 
        value: function(val){ 
         if (val) { 
          document.querySelector(rowId + ' ' + cellClass).innerHTML = val; 
         } else { 
          return document.querySelector(rowId + ' ' + cellClass).innerHTML; 
         } 
        } 
       } 
      } 
     } 
    } 
}; 

objeto.row('#rowid').cell('.cellclass').value('hello'); // set value 
objeto.row('#rowid').cell('.cellclass').value();  // get value 
+0

但是在這裏你刪除了'set'函數 – Newton

+0

@Newton這樣更好嗎?你只需要一個函數來設置和獲取。 – akinuri

0

的問題是返回類型的任何功能是固定的。這意味着如果它返回的對象總是對象將從該函數返回。你想要做的是你試圖從多態性中受益,但它不能以這種方式完成。

var objeto = { 
    row: function(rowId){ 
     return { 
      cell: function(cellClass,newValue){ 
        this.set = function (newValue){ 
        if(typeof newValue != "undefined"){ 
         document.querySelector(rowId+' '+cellClass).innerHTML = val; 
        } 
        } 
       this.set(newValue); 
       return document.querySelector(rowId+' '+cellClass).innerHTML; 
       } 
       //Or just return the value 
      } 
     } 
    } 
}; 

所以,你可以使用

VAR CurrentValue的= objeto.row( '#ROWID')細胞(」 cellclass。, '你好')。 或

var currentValue = objeto.row('#rowid')。cell('。cellclass');