Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript类中声明公共方法时出现语法错误_Javascript_Class - Fatal编程技术网

在Javascript类中声明公共方法时出现语法错误

在Javascript类中声明公共方法时出现语法错误,javascript,class,Javascript,Class,我用javascript编写了一个类。当我试图将方法声明为公共方法时,它给了我语法错误。我提供两种情况,唯一的区别是进入 第一个案例显示语法错误: var myclass=(function(){ function takeResponse(){.....} . . . function takeResponse(){.....} return { takeResponse: takeResponse, takeR

我用javascript编写了一个类。当我试图将方法声明为公共方法时,它给了我语法错误。我提供两种情况,唯一的区别是进入

第一个案例显示语法错误:

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和{放在第一个代码的同一行中