2011-08-01 118 views
2

可能重复:
How do you know when to return false from a jQuery function?jQuery的:返回true或false

我们都有一些jQuery代码看起来像这样:

$('#MySelector').somefunction(function() { 

    // do something 

}); 

有什么好处/包括退货声明的惩罚,我们应该返回真假吗?现在,我会说我的代码在没有返回语句的情况下工作正常,但我想知道在我描述的上下文中return语句会做什么。

感谢您的澄清。

+0

我不知道,'somefunction'做什么? – BoltClock

+1

*“...在我描述的上下文中。”*您没有描述任何可知的上下文,除非有一个“somefunction”插件,除了我知道的每个人都知道。 – user113716

回答

1

您将匿名函数作为参数传递给somefunction,所以它确实取决于somefunction对该参数的作用。真正重要的是somefunction返回。例如,让我们说这是它是如何定义的:

$.fn.somefunction = function (fnParam) { 
    var returnVal = fnParam(); 

    if (returnVal) { 
    // do something 
    } else { 
    // do something else 
    } 

    return this; 
}; 

所以在这里我们的fnParam的返回值赋值给一个变量,并使用该变量中somefunction确定的行动。 somefunction返回this虽然,这将是它传递的jQuery对象(在您的示例$('#MySelector'))。既然你返回thissomefunction可以链接与其他jQuery方法,如:

$('#MySelector').somefunction(function(){ // blah }) 
       .css('background','yellow') 
       .appendTo('body') 
       .show(); 
0

在这种情况下,如果你使用

return false; 

它将中止该function(){ }并继续,如果你想过早和/或如果退出功能的出来可能

0

返回的东西仅仅是有益的需要将函数结果的值赋给变量:

var foo = calculate(1,2); // foo = 3 

function calculate(a,b){ 
    return a+b; 
} 
+0

我想他确实知道你的情况是什么意思。他想知道在他的CONTEXT $(“body”)的情况下会发生什么。some(function(){return;}); – genesis

+0

是的,我是这样认为的,但无论如何这是一个相当荒谬的问题,所以我不确定;) – AlienWebguy