2016-07-27 5 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'); 

私はどのような方法を使用する必要がありますか?

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

は、次の構造を使用することができます。つまり、オブジェクトを返す場合、常にそのオブジェクトはその関数からの戻り値になります。あなたがしたいことは、多型主義から利益を得ようとすることですが、そのような方法ではできません。 。

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');

+0

ここでは、「設定」機能を削除します – Newton

+0

@ニュートン設定して取得する関数は1つだけ必要です。 – akinuri

0

問題がある任意の関数の戻り値の型が固定されている:

関連する問題