我使用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行:意外数据
如何纠正这个错误...
答案 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运行代码时遇到的大多数其他错误与空白有关,因此可以忽略。