温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么时候使用flags

发布时间:2022-03-28 14:38:16 来源:亿速云 阅读:134 作者:iii 栏目:web开发

这篇文章主要讲解了“什么时候使用flags”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么时候使用flags”吧!

  Possible flags:(可用的 flags:)

  once: 确保这个回调列表只执行( .fire() )一次(像一个递延 Deferred).

  memory: 保持以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred).

  unique: 确保一次只能添加一个回调(所以在列表中没有重复的回调).

  stopOnFalse: 当一个回调返回false 时中断调用

  默认情况下,回调列表将像事件的回调列表中可以多次触发。

  如何在理想情况下应该使用的flags的例子,见下文:

  $.Callbacks( "once" ):

  var callbacks = $.Callbacks( "once" );

  callbacks.add( fn1 );

  callbacks.fire( "foo" );

  callbacks.add( fn2 );

  callbacks.fire( "bar" );

  callbacks.remove( fn2 );

  callbacks.fire( "foobar" );

  /*

  output:

  foo

  */

  $.Callbacks( "memory" ):

  var callbacks = $.Callbacks( "memory" );

  callbacks.add( fn1 );

  callbacks.fire( "foo" );

  callbacks.add( fn2 );

  callbacks.fire( "bar" );

  callbacks.remove( fn2 );

  callbacks.fire( "foobar" );

  /*

  output:

  foo

  fn2 says:foo

  bar

  fn2 says:bar

  foobar

  */

  $.Callbacks( "unique" ):

  var callbacks = $.Callbacks( "unique" );

  callbacks.add( fn1 );

  callbacks.fire( "foo" );

  callbacks.add( fn1 ); // repeat addition

  callbacks.add( fn2 );

  callbacks.fire( "bar" );

  callbacks.remove( fn2 );

  callbacks.fire( "foobar" );

  /*

  output:

  foo

  bar

  fn2 says:bar

  foobar

  */

  $.Callbacks( "stopOnFalse" ):

  function fn1( value ){

  console.log( value );

  return false;

  }

  function fn2( value ){

  fn1( "fn2 says: " + value );

  return false;

  }

  var callbacks = $.Callbacks( "stopOnFalse" );

  callbacks.add( fn1 );

  callbacks.fire( "foo" );

  callbacks.add( fn2 );

  callbacks.fire( "bar" );

  callbacks.remove( fn2 );

  callbacks.fire( "foobar" );

  /*

  output:

  foo

  bar

  foobar

  */

感谢各位的阅读,以上就是“什么时候使用flags”的内容了,经过本文的学习后,相信大家对什么时候使用flags这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI