JavaScript:意外的数据错误

时间:2012-06-01 07:01:30

标签: javascript jslint

我使用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行:意外数据

如何纠正这个错误...

1 个答案:

答案 0 :(得分: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运行代码时遇到的大多数其他错误与空白有关,因此可以忽略。