【问题标题】:return vs. callback in a Javascript functionJavascript函数中的返回与回调
【发布时间】:2011-05-29 14:05:41
【问题描述】:

假设我写了这个函数……

var sayHi = function() {
  return "hi";
}

alert(sayHi()); 将返回“hi”。

如果我这样写的话……

var sayHi = function(callback) {
  callback("hi");
}

如何使用此功能显示“hi”?

基于此处的示例:http://nowjs.com/doc

【问题讨论】:

    标签: javascript nowjs-sockets


    【解决方案1】:

    你将一个函数传递给 sayHi,所以我想象一下:

    sayHi(alert);
    

    【讨论】:

    • 我不敢相信没有其他人会费心指出最明显的答案。
    • 哈!嗬! +1 不敢相信我错过了。
    【解决方案2】:

    你必须定义了一些回调函数或传递了一个匿名函数:

    var sayHi = function(callback) {
      callback("hi");
    }
    
    sayHi(function(message){
      alert(message);
    });
    

    【讨论】:

      【解决方案3】:

      试试这个:

      sayHi(function(msg){
          alert(msg)
      });
      

      您的新sayHi 函数没有返回值,因此您必须在回调函数中执行警报。

      【讨论】:

      • 谢谢,我想我在这里遗漏了一些简单的东西。每个人几乎同时回答。希望我有足够的代表来投票给你们。
      【解决方案4】:
      sayHi(function(value) {
          alert(value);
      });
      

      【讨论】:

        【解决方案5】:
        sayHi(function(msg) {
            alert(msg);
        });
        

        在使用回调时,您必须颠倒您的思维过程。不是先写下一个操作,而是最后写下一个操作。

        【讨论】:

          【解决方案6】:

          这里的例子中回调是一个函数。所以你应该传递函数参数。

          您可以通过两种方式做到这一点:

          var some_fun = function(some_str) {
              alert(some_str);
          }
          
          var sayHi = function(callback) {
            callback("hi");
          }
          
              sayHi(some_fun)
          

          或者你可以在调用时传递函数:

          var sayHi = function(callback) {
            callback("hi");
          }
          
          sayHi(function(some_str){
            alert(some_str);
          });
          

          【讨论】:

            猜你喜欢
            • 2022-01-03
            • 1970-01-01
            • 1970-01-01
            • 2023-04-04
            • 1970-01-01
            • 2011-05-02
            • 1970-01-01
            • 2011-06-30
            • 1970-01-01
            相关资源
            最近更新 更多