Javascript 将selector.method作为参数,调用它

Javascript 将selector.method作为参数,调用它,javascript,jquery,callback,function-pointers,Javascript,Jquery,Callback,Function Pointers,我有一个函数$.doSomething(),它做一些事情,然后应该调用jQuery形式的$('selector').function()。我不想让$.doSomething()知道它在调用什么,这应该由用户决定 我在JSBin上创建了一个小示例: 是否可以存储对$('#foo').doStuff()的调用并将其作为参数提供给函数,然后函数调用它 以下是示例代码(以防有人无法访问JSBin或将其删除): script.js $(document).ready( function() { va

我有一个函数
$.doSomething()
,它做一些事情,然后应该调用jQuery形式的
$('selector').function()
。我不想让
$.doSomething()
知道它在调用什么,这应该由用户决定

我在JSBin上创建了一个小示例:

是否可以存储对
$('#foo').doStuff()的调用并将其作为参数提供给函数,然后函数调用它

以下是示例代码(以防有人无法访问JSBin或将其删除):

script.js

$(document).ready( function() {
  var callback = $('#foo').doStuff();
  $.doSomething(callback);
});


$.extend({
  doSomething: function(callback) {
    //do some stuff
    //call the callback
  }
});


$.fn.doStuff = function() {
  $(this).text("Stuff Done");
};
index.html

<html>
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <p id="foo"></p>
</body>
</html>

当然,只需将
$('#foo').doStuff()放入函数中即可:

var callback = function() {
    $('#foo').doStuff();
};
当然,只需将
$('#foo').doStuff()放入函数中即可:

var callback = function() {
    $('#foo').doStuff();
};

…为什么我没想到?谢谢为什么我没想到呢?谢谢