使用javascript中的方法

Using method in javascript

本文关键字:方法 javascript 使用      更新时间:2023-09-26

Supuse我有下一个在表的单元格中插入值的方法:

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

问题是任何函数的返回类型都是固定的。这意味着,如果它返回object,那么该函数将始终返回object。你想做的是试图从多晶型代谢中受益,但这是不可能的。

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=obgeto.row('#rowid').cell('.cellclass','hello');或

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