6

JSLint 坚持认为 .call 的这种使用有问题:

function GridView(tableArray, tableId, multiselect) {
    "use strict";
    if (multiselect == undefined) {
        this.multiselect = false;
    } else {
        this.multiselect = multiselect;
    }

    this.tableID = tableId;
    this.propertiesArr = [];
    this.tableHTML = undefined;
    this.oTable = undefined;

    this._constructTable.call(this, tableArray);

}

是错的。好吧,无论如何,出乎意料。我一生都无法弄清楚为什么,代码有问题吗?它似乎有效,但我担心意外行为。

4

1 回答 1

10

警告的原因是以下行:

this._constructTable.call(this, tableArray);

这个构造似乎在很大程度上毫无意义 - 您_constructTable在 的上下文中调用该方法,this如果您通过正常的调用表达式调用它,它将与调用它的上下文相同。JSLint 正是这样期望的:

this._constructTable(tableArray);
于 2013-06-25T11:09:29.460 回答