0

我使用 javaScript 编写了一些代码。

 function showPopupSettings(userName)
        { 
           var jsonData;
           setLoading("Loading User Settings");
           jsonData = new function(){
                    this.className = "User";
                    this.methodName = "showPopupSettings";
                    this.userName = userName ;
            } 
                data = JSON.stringify(jsonData);
                $.post('ajaxpage.php',{ submit: "commonAction",data:data },
                                    function(data) {
                                        removeLoading();
                                        $("#dialog")
                                            .dialog("destroy")
                                            .html(data)
                                            .show()
                                            .dialog({
                                                modal: true,
                                                title: "User Settings",
                                                buttons: {
                                                    Cancel: function() {
                                                        $(this).dialog('close');
                                                    },

                                                    Password: function() {
                                                        showChangePasswordTable();
                                                    },

                                                    Save: function() {
                                                        saveNewUserSettings();
                                                        $(this).dialog('close');
                                                    }
                                                }
                                            });
                                    });
        }

通过使用 Jslint 无错误。当我使用 JsLint 检查时将显示以下错误行 10:意外数据

如何纠正这个错误...

4

1 回答 1

1

你在这一行得到那个错误:

data = JSON.stringify(jsonData);

这是由上一行引起的,它应该以分号结尾,但不是:

jsonData = new function(){
     this.className = "User";
     this.methodName = "showPopupSettings";
     this.userName = userName ;
}; //Semi-colon here!

您的代码还有许多其他问题。在上面的代码段中,您不需要new关键字:

jsonData = function() { //No 'new'!
     this.className = "User";
     this.methodName = "showPopupSettings";
     this.userName = userName ;
};

data = JSON.stringify(jsonData)您使用data时没有先声明它,所以它会泄漏到全局范围内。在使用之前使用该var语句进行声明。data

我通过 JSLint 运行代码时遇到的大多数其他错误都与空格有关,因此可以忽略。

于 2012-06-01T07:05:59.653 回答