作为参数(javascript)传递的函数的系统唯一id

System unique id of a function passed as a parameter (javascript)

本文关键字:函数 系统 唯一 id 参数 javascript      更新时间:2023-09-26

这可能是不可能的,但也许一些stackoverflow天才可以找到解决方案:)

W希望有这样的功能:

var myCrazyFunc;
myCrazyFunc = function (param1, callback) {
  var funcId;
  // I would like to get an Id of the function passed by callback 
  // which will be different for those two calls in example below
  funcId = getFuncId(callback);
  callback();
};
myCrazyFunc("param1", function () {
  dosomething1;
});
myCrazyFunc("param1", function () {
  dosomething2;
});

请不要问我为什么需要它:)简单地说,如果可能的话,它会简化我的代码。

这是我制作的函数:

var myCrazyFunc;
var latestID = 0;
var funcToID = {};
function getFuncId(f) {
  if (f in funcToID) {
    return funcToID[f];
  }
  funcToID[f] = ++latestID;
  return latestID;
}
myCrazyFunc = function(param1, callback) {
  var funcId;
  // I would like to get an Id of the function passed by callback 
  // which will be different for those two calls in example below
  funcId = getFuncId(callback);
  console.log(funcId);
  callback();           
};
myCrazyFunc("param1", function() {
  'a';
});
myCrazyFunc("param1", function() {
  'b';
});

此示例将记录:

1
2

如果你用相同的功能代码运行它,你会得到相同的id,比如这里:

myCrazyFunc("param1", function() {
  'a';
});
myCrazyFunc("param1", function() {
  'a';
});

输出:

1
2

我希望没关系。