0

您好,我在stackoverflow上找到了一篇关于如何调用动态函数的文章:

function mainfunc(func) {
    this[func].apply(this, Array.prototype.slice.call(arguments, 1));
}

这非常有用。但是我怎样才能在我的对象函数中调用函数呢?

我收到一个错误:

“TypeError: this[func] is undefined this[func].apply(this, Array.prototype.slice.call(arguments, 1));”

看起来像:

var myScript = {
...
add : function() {
...
myScript.ajax('url.php', params, 'myScript.add2List');
},

add2List : function(data) {
console.log(data);
},

ajax : function(url, params, func) {
  $.ajax({
      type: "POST",
      url: url,
      data: params,
      success: function(data) {
        console.log(func);
        mainfunc(func, data);
      }
  });
 }
}
4

1 回答 1

0

您不需要使用该功能,您可以执行以下操作。

var myScript = {
...
add : function() {
  ...
  myScript.ajax('url.php', params,  this.add2List);
},

add2List : function(data) {
  console.log(data);
},

ajax : function(url, params, func) {
  $.ajax({
      type: "POST",
      url: url,
      data: params,
      success: func
  });
 }
}
于 2012-09-02T11:48:12.360 回答