在Javascript类中声明公共方法时出现语法错误
我用javascript编写了一个类。当我试图将方法声明为公共方法时,它给了我语法错误。我提供两种情况,唯一的区别是进入 第一个案例显示语法错误:在Javascript类中声明公共方法时出现语法错误,javascript,class,Javascript,Class,我用javascript编写了一个类。当我试图将方法声明为公共方法时,它给了我语法错误。我提供两种情况,唯一的区别是进入 第一个案例显示语法错误: var myclass=(function(){ function takeResponse(){.....} . . . function takeResponse(){.....} return { takeResponse: takeResponse, takeR
var myclass=(function(){
function takeResponse(){.....}
.
.
.
function takeResponse(){.....}
return
{
takeResponse: takeResponse,
takeResponse_1: takeResponse_1,
takeResponse_2: takeResponse_2,
takeResponse_3: takeResponse_3
};
})();
var TestUtils=(function(){
function takeResponse(URL)
{
var Response=new Promise(function(resolve,reject){
$.ajax({
url: URL,
type: "GET",
dataType: "json",
success: function(result){
resolve(result);
}
});
});
return Response;
}
function takeResponse_1(URL,Data)
{
var Response=new Promise(function(resolve,reject){
$.ajax({
url:URL,
type: "POST",
dataType: "json",
data: JSON.stringify(Data),
contentType: "application/json",
success: function(result){
resolve(result);
}
});
});
return Response;
}
function takeResponse_2(URL,Data)
{
var Response=new Promise(function(resolve,reject){
var res = $.ajax({
url: URL,
type: "PUT",
dataType: "json",
data: JSON.stringify(Data),
contentType: "application/json",
async: false
}).responseText;
console.log("======"+res);
resolve(res);
});
return Response;
}
function takeResponse_3(URL)
{
var Response=new Promise(function(resolve,reject){
var res = $.ajax({
url: URL,
type: "DELETE",
dataType: "json",
contentType: "application/json",
async: false
}).responseText;
console.log("======"+res);
resolve(res);
});
return Response;
}
return {
takeResponse: takeResponse,
takeResponse_1: takeResponse_1,
takeResponse_2: takeResponse_2,
takeResponse_3: takeResponse_3
};
})();
第二种情况没有语法错误:
var myclass=(function(){
function takeResponse(){.....}
.
.
.
function takeResponse(){.....}
return
{
takeResponse: takeResponse,
takeResponse_1: takeResponse_1,
takeResponse_2: takeResponse_2,
takeResponse_3: takeResponse_3
};
})();
var TestUtils=(function(){
function takeResponse(URL)
{
var Response=new Promise(function(resolve,reject){
$.ajax({
url: URL,
type: "GET",
dataType: "json",
success: function(result){
resolve(result);
}
});
});
return Response;
}
function takeResponse_1(URL,Data)
{
var Response=new Promise(function(resolve,reject){
$.ajax({
url:URL,
type: "POST",
dataType: "json",
data: JSON.stringify(Data),
contentType: "application/json",
success: function(result){
resolve(result);
}
});
});
return Response;
}
function takeResponse_2(URL,Data)
{
var Response=new Promise(function(resolve,reject){
var res = $.ajax({
url: URL,
type: "PUT",
dataType: "json",
data: JSON.stringify(Data),
contentType: "application/json",
async: false
}).responseText;
console.log("======"+res);
resolve(res);
});
return Response;
}
function takeResponse_3(URL)
{
var Response=new Promise(function(resolve,reject){
var res = $.ajax({
url: URL,
type: "DELETE",
dataType: "json",
contentType: "application/json",
async: false
}).responseText;
console.log("======"+res);
resolve(res);
});
return Response;
}
return {
takeResponse: takeResponse,
takeResponse_1: takeResponse_1,
takeResponse_2: takeResponse_2,
takeResponse_3: takeResponse_3
};
})();
我不明白为什么它在第一种情况下显示错误。
有人能告诉我这两种代码之间的区别吗??
提前感谢这是因为javascript假设返回在一行中完成,并附加一个
代码>在它之后像
return ;
{
takeResponse: takeResponse,
takeResponse_1: takeResponse_1,
takeResponse_2: takeResponse_2,
takeResponse_3: takeResponse_3
};
这种行为称为自动分号插入,
阅读相关内容您能否输入一个实际代码,让我们运行并查看错误?现在您有多个takeResponse函数的声明,而没有takeResponse_x的声明,所以我们实际上看不到您想要做什么。好的。问题是第一个代码中的return语句(其中{以新行开始),所以javascript将在return后插入分号,并将{视为新行,尝试将return和{放在第一个代码的同一行中