javascript - 回调: "Object is not a function"

标签 javascript coffeescript

我正在尝试使用 CoffeeScript 设置 AJAX 回调函数,如下所示:

模式

function doAjax(callback)
{
  $.ajax(url, data)
    .done(function(){
       // ... do stuff here ...
       callback(true);
    }).fail(function(){
       callback(false);
    });
}

function doSomething()
{
  doAjax(function(result){
    if (result == true )
       console.log('success');
    else
       console.log('failed');
  });
}

我使用以下 CoffeeScript 来执行此操作(这是在对象内):

CoffeeScript

doAjax: (callback) ->
  $.getJSON(url)
    .done( (data) ->
      if something == true
        callback(true)
      else
        callback(false)
    ).fail( () ->
      callback(false)
    )

doSomething: () ->
  this.doAjax(function:(result)->
    if result == true
      console.log "true"
    else
      console.log "false"

它会生成如下编译后的 JavaScript:

编译后的JS

MyObject.prototype.doAjax = function(callback) {

  return $.getJSON(url).done(function(data) {
    if (something == true) {
      callback(true);  // <--- The error happens here
    } else {
      callback(false);
    }
  }).fail(function() {
    callback(false);
  });
};

MyObject.prototype.doSomething = function() {

  return this.doAjax({
    "function": function(result) {
      var message;

      if (result === true) {

        return console.log("true");
      } else {
        return console.log("false");
      }
    }
  });
};

我收到错误(在上面标记的行处):

Uncaught TypeError: object is not a function 

我在这里的 CoffeeScript 做错了什么?

最佳答案

改变这个

this.doAjax(function:(result)->

到此

this.doAjax((result)->

coffeescript 中的函数是用 () -> 声明的。 function:() -> 创建一个具有名为 function 的属性的对象,该属性包含实际函数

关于javascript - 回调: "Object is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880049/

相关文章:

javascript - 为什么我不能将此函数传递给 React 中的 onMouseEnter?

javascript - 添加到 JS 对象或如果键存在则增加计数

javascript - HTML5 进度元素

javascript - 如何在 Rails 3 上从 js.erb 调用 CoffeeScript 函数以及如何理解 Javascript 中的作用域

jquery - 如何创建 jquery cookie?

javascript - 外部 JavaScript 文件中的英镑 (£) 和欧元 (€) 符号编码错误

javascript - 通过 JavaScript 动态创建输入元素

javascript - 链接多个 jquery 事件而不使用回调

javascript - 使用 html 事件 onclick 的 coffescript 的未定义方法 ="function()"

Node.js readline 缺少文件的最后一行?