理想情况下应该使用的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
  
  */

推荐阅读