猿问

js 远程调用方法

需要js 远程调用服务端方法。new Client(url).xxx().
首先有个url获取服务端可用方法名 格式如下["get_product_list","get_categroy_list"]

function Client (url) {

//请求url 返回["get_product_list","get_categroy_list"] 

  

  var array_method_list = ["get_product_list","get_categroy_list"] ;

  for (var v of  array_method_list){

   this[v] = v;//此处只是把函数名进行赋值 本地是没有这个方法的 如何调用呢

  }              

}


想到用eval这个方法了,可是十分讨厌这个方法,有什么好办法不用eval()?或者更简洁的方式去写

function Client(url) {

    // url AJAX获得array_method_list

    var array_method_list;

    var obj = new Object;

    obj.invoke = function(method_name, argument_list) {

        // AJAX方法获取数据

        var called_function_name = "on_"+method_name+"_finished";

    }

    for (method_name in array_method_list) {

        eval("obj."+method_name+"=function(){this.invoke('"+method_name+"', arguments);}");

    }

    return obj;

}


牧羊人nacy
浏览 1030回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答