jquery each方法的return false

发布于 2022-09-30 18:29:14 字数 2204 浏览 11 评论 0

转:小鸡啄米

jquery each方法的return false

return false;
  想必都明白终止函数的继续执行,如果放在主程序中,则终止程序的执行,今天在jquery中each发现return false;程序仍可以往下执行,看了源码才知道原来return false,在each方法中只相当于在一个函数中的return false;当前的函数会停止循环而程序会继续执行。(想想真恐怖,以前写的还不知道有多少BUG呢!对JS还是不了解)。[size=medium]

Java代码

  1. // A special, fast, case for the most common use of each
  2.                 }
  3. else {
  4.         if ( isObj ) {
  5.                 for ( name in object ) {
  6.                 if ( callback.call( object[ name ], name, object[ name ] ) === false )
  7. {
  8.                         break;
  9.                 }
  10.                 }
  11.         } else {
  12. for ( var value = object[0];
  13. i < length && callback.call( value, i, value ) !== false;
  14. value = object[++i] ) {}
  15.                         }
  16.                 }

复制代码这是jquery each 方法的一段源码,

Java代码

  1. for ( var value = object[0];
  2.                                         i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}

复制代码这部分就是执行函数的部分。
call函数的意思指的是:调用一个函数,并把第一个参数作为函数的上下文,也就是this对象。所以如果有函数有return false的话,就只是停止了这个循环,你所写的下面的代码还会执行!
如果想停止程序的执行。当然还要另外处理。
处理的方法包括两种:
1,异常处理:在你的return false处,添加throw 语句,用try catch捕捉catch 后直接return false;
2 ,变量控制:在return false 前改变一个变量的值,在each语句后检查变量的值。
最终要的还是:了解你的程序的结构,了解jquery 的结构!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文