Javascript 如何将值从jquery插件传递到其回调函数

Javascript 如何将值从jquery插件传递到其回调函数,javascript,jquery,Javascript,Jquery,我创建了一个简单的Jquery函数,它接受一些参数并得出某种结果。我需要能够将这个结果传递给jquery插件的回调函数 (function( $ ){ $.fn.newPlugin= function(params,CBfunction){ //do some stuff; var result = "something"; CBfunction.call(this); }; })( jQuery ); 使用插件时,我希望能够将插件的结果解析为回调函数: $

我创建了一个简单的Jquery函数,它接受一些参数并得出某种结果。我需要能够将这个结果传递给jquery插件的回调函数

(function( $ ){
   $.fn.newPlugin= function(params,CBfunction){

    //do some stuff;
    var result = "something";
    CBfunction.call(this);

}; 
})( jQuery );
使用插件时,我希望能够将插件的结果解析为回调函数:

$(elm).newPlugin(params, function(params, this.result){
  //this.resullt comes from the plugin ('something');

})
这可能吗

例如,看看变量“myVar”:

我使用插件:

$(elm).newPlugin(a,b,function(){
  alert("the result of "+a+" + "+b+" is:"+myVar);
})
myVar来自插件并用于回调函数,有什么方法可以做到这一点吗


谢谢。

为什么不在调用回调时传递结果呢?像这样:

(function( $ ){
   $.fn.newPlugin= function(params,CBfunction){

    //do some stuff;
    var result = "something";
    CBfunction.call(this, result);
};
})(jQuery);
然后您需要修改您的调用,使其看起来像这样(顺便说一句,注意我从回调中删除了'param'参数,因为只传递了一个参数):


我不知道你所说的“将插件的结果解析到回调”是什么意思……你写的是你自己的插件吗?我猜他实际上是指“通过”而不是“解析”。假设$(elm).height()返回元素的高度,我想在回调函数中使用这个值,height没有,但fadeIn有,想象一下:fadeIn()返回某个值,并且您希望在回调函数$(elm).fadeIn(100,函数(值){//do something with value})中使用该值;我修改了我的问题,也许现在更清楚了,谢谢。这允许我传递更多的变量和“结果”吗?是的,你可以传递任意多的变量,就像任何其他函数调用一样。“.call”与普通函数调用的唯一区别在于,它允许您指定回调中的“this”关键字值。这意味着使用插件的人必须使用“result”作为来自插件的特定变量,如果我传递2个、3个或n个变量,函数现在将如何生成结果?我刚刚意识到您的回调定义中也有一个错误,即您有另一个不应该存在的参数调用“param”。要回答您的问题,您必须告诉您的用户,例如在文档中。就像任何回调一样,用户需要知道它将接收哪些参数。
(function( $ ){
   $.fn.newPlugin= function(params,CBfunction){

    //do some stuff;
    var result = "something";
    CBfunction.call(this, result);
};
})(jQuery);
$(elm).newPlugin(params, function(result){
  // result comes from the plugin ('something');
})