首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将参数传递给回调函数

将参数传递给回调函数
EN

Stack Overflow用户
提问于 2014-10-20 07:34:02
回答 2查看 56关注 0票数 0

我试图把我的头放在javascript回调函数上。我尝试了以下代码:

代码语言:javascript
复制
var callbackTester = function(callback) {
  var tryMe = "Are you ready, ";
  callback(tryMe);
}

var createMessageHandler = function(client) {
  this.client = client;
  this.result = function(foo){
    console.log(foo + " "+ this.client);
  }
};

(new createMessageHandler("John")).result(callbackTester);

我没有“准备好了吗,Jason",而是将整个回调函数显示在名称后面:

代码语言:javascript
复制
function (callback) {
  var tryMe = "Are you ready, ";
  callback(tryMe);
} John

有人能帮我弄清楚怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-20 07:40:25

您的foo参数不是字符串,而是需要调用的回调。可能的解决办法之一是:

代码语言:javascript
复制
var callbackTester = function (callback) {
    var tryMe = "Are you ready, ";
    callback(tryMe);
};

var createMessageHandler = function (client) {
    this.client = client;
    this.result = function (foo) {
        foo(function (msg) {
            console.log(msg + " " + this.client);
        }.bind(this));
    }
};

(new createMessageHandler("John")).result(callbackTester);

注意.bind(this) -您需要这样做,以便将this.client从外部范围中保存下来。

关于bind函数的更多信息:Objects/Function/bind

注意:不过,我不太明白您代码的目的。你不是要进入回调地狱吗?试一试单子/承诺。

new createMessageHandler不是直观的。它应该是new MessageHandler()或者只是createMessageHandler()

票数 0
EN

Stack Overflow用户

发布于 2014-10-20 07:42:18

您定义了一个callbackTester函数,它使用一个回调作为参数,所以您必须给它一个回调,否则它将无法工作。另外,您还必须对回调进行return。否则,除了函数本身,什么也得不到。以下是一个解决方案:

代码语言:javascript
复制
var callbackTester = function(callback) {
    var tryMe = "Are you ready,";
    return callback(tryMe);
}

var createMessageHandler = function(client) {
    this.client = client;
    this.result = function(foo){
        console.log(foo + " "+ this.client);
    }
}

(new createMessageHandler("John")).result(callbackTester(function(phrase) { return phrase; }));
// Are you ready, John
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26460534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档