javascript回调,它是如何工作的?

时间:2018-01-05 21:57:22

标签: javascript

我试图制作一个回调函数,但是我无法找到一个解决方案来传递这个回调中的参数。

var chrome = {
  enterprise: {
    deviceAttributes: {
      getDirectoryDeviceId: function() {
        return "test";
      }
    }
  }
};

chrome.enterprise.deviceAttributes.getDirectoryDeviceId(function(deviceid) {
  alert(deviceid);
});

回调函数中的deviceid如何是" xxx" ?

非常感谢

2 个答案:

答案 0 :(得分:2)

当你调用它时,你正在将一个函数传递给getDirectoryDeviceId但是没有调用该函数或将其作为参数接受

尝试:



var chrome = {
  enterprise: {
    deviceAttributes: {
      getDirectoryDeviceId: function(callback) {
                                   // ^^ function you already pass in when you call method

        // call the callback you pass in below
        callback("test");
      }
    }
  }
};
// nothing changed here
chrome.enterprise.deviceAttributes.getDirectoryDeviceId(function(deviceid) {
  alert(deviceid);
});




答案 1 :(得分:1)

首先,chrome.enterprise.deviceAttributes.getDirectoryDeviceId被分配了一个不带参数的函数,所以你需要在那里设置一个。

然后,当您调用getDirectoryDeviceId时,可以通过将()附加到参数来执行您传递的函数。

最后,如果您希望能够传递回调将使用的参数,则需要在函数中设置第二个参数。



var chrome = {
   enterprise: {
    deviceAttributes: {
      getDirectoryDeviceId : function(callback, data){
        callback(data);
      }
    }
  }
};


chrome.enterprise.deviceAttributes.getDirectoryDeviceId(function (deviceid){
  alert(deviceid);
}, "TEST!");  // <-- Second argument is the data that will be used by the callback
&#13;
&#13;
&#13;