如何使用jquery中的赋值运算符来赋值函数

时间:2018-04-16 20:47:46

标签: javascript jquery

具有以下功能:

wordcloud = WordCloud().generate_from_frequencies(tuples)

我在声明后使用这个函数:

function ObjDataSet () {
this.header = "";
this.dataIdx = 0;
this.DataRows = [];
this.CountRow = 0;
}

.... 

ObjDataSet.prototype.NameString = function(argIdx, argName, argValue) {
    var arrObj = this.DataRows[argIdx-1];
    arrObj[argName] = argValue;
    this.DataRows[argIdx-1] = arrObj;
};

但是我想使用赋值运算符这样的函数:

var dataSet = new ObjDataSet();    
dataSet.NameString(1, "CUST_KIND",document.searchForm.CUST_KIND.value);

要使用赋值操作,如何更改“NameString”函数? 我不想将值指定为函数的参数。

谢谢。

1 个答案:

答案 0 :(得分:0)

你无法做你想要的。赋值的左侧必须是对象的变量或属性。你能做的最接近的是:

dataSet.NameString(1).CUST_KIND = 'value';

假设dataSet.NameString(1)返回一个可以为其分配属性的对象。这是一个完整的演示:

var dataSet = setup();

// Log DataRows before and after assigning:

console.log( dataSet.DataRows );
dataSet.NameString(1).CUST_KIND = 'value';
console.log( dataSet.DataRows );


//////
// Prepare dataSet object with `DataRows[0] = {};`

function setup ( ) {
    function ObjDataSet () {
        this.header = "";
        this.dataIdx = 0;
        this.DataRows = [];
        this.CountRow = 0;
    }

    ObjDataSet.prototype.NameString = function(argIdx, argName) {
        return this.DataRows[argIdx-1];
    };

    const dataSet = new ObjDataSet;
    dataSet.DataRows[0] = {};

    return dataSet;
}