修复了JSLint"意外的'这个'。"错误?

时间:2014-12-11 12:22:13

标签: javascript this jslint

我正在尝试将以下代码变为jslint-compliant,但我仍然遇到以下两个错误:

  

预计会看到一个声明,而是看到一个阻止。

  

意外'这'。

我应该对我的代码进行哪些更改以使JSLint满意?

var pvAccess =  {};

pvAccess.Func = function () {
    "use strict";

    function AccessPV(name, rValue, wValue) {

        var url = '/goform/ReadWrite',    
            data = 'redirect=/response.asp&variable=' + escape(name),
            xmlHttp = null,
            wValue = null;

        if (rValue !== null && rValue !== "") {    
            data += '&value=' + escape(rValue);
            data += "&write=1";
        } else {
            data += '&value=none';
            data += "&read = 1";
        }

        try {
            // Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
            try {
                // MS Internet Explorer (ab v6)
                xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
                try {
                    // MS Internet Explorer (ab v5)
                    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e3) {
                    xmlHttp  = null;
                }
            }
        }

        if (xmlHttp) {    
            xmlHttp.open('POST', url, 1);
            xmlHttp.onreadystatechange = function () {

                if (xmlHttp.readyState === 4) {
                    if (wValue !== null) {
                        wValue[3] = xmlHttp.responseText;
                        wValue[3] = wValue[3].replace("<!-- B&R ASP Webserver -->", "");
                        // value attribute of node    
                        wValue.value = wValue[3];
                        return wValue;
                    }
                }
            };

            xmlHttp.send(data);
        }
    }

// public
    {    
        this.WritePV = function (name, value) { AccessPV(name, value); }
        this.ReadPV = function (name, wValue) { return AccessPV(name, null, wValue); }
    }
}

pvAccess = new pvAccess.Func();

2 个答案:

答案 0 :(得分:0)

我可以看到的两件可能导致这种情况的事情是:

  1. 您的公共方法周围有不必要的{}。这可能导致预期的语句错误。
  2. 您的公共方法不仅仅是函数赋值语句,因此您应该在函数定义之后以分号结束该行。如果没有这个,lint会把它读作1行代码(this.WritePV = function { ... }this.ReadPV),因此就是“意外的”。
  3. 因此,您需要将公共方法更改为:

    // public
        this.WritePV = function (name, value) { AccessPV(name, value); };
    
        this.ReadPV = function (name, wValue) { return AccessPV(name, null, wValue); };
    

答案 1 :(得分:0)

{

    this.WritePV = function (name, value) { AccessPV(name, value); }

    this.ReadPV = function (name, wValue) { return AccessPV(name, null, wValue); }
}

^^^

导致错误。删除那些括号,它自己修复。它还希望你使用分号。

    this.WritePV = function (name, value) { AccessPV(name, value); };

    this.ReadPV = function (name, wValue) { return AccessPV(name, null, wValue); };