关于切面
May 20th, 2009
YUI3.x里的代码
- publisher.subscribe('event1', function(){
- Y.log('event 1');
- });
- publisher.before('event1', function(){
- Y.log('before: event 1');
- });
- publisher.after('event1', function(){
- Y.log('after: event 1');
- });
- publisher.fire('event1');
触发event1后,看到的log信息将会是:
event 1
before: event1
default event handler
after: event1
其实这种aop,对于JavaScript来说,还可以考虑将它实现在Function上
- var handler = Function.aspact(function(){
- Y.log('event 1');
- });
- publisher.subscribe('event1', handler);
- hendler.before(function(){
- Y.log('before: event 1');
- });
- handler.after(function(){
- Y.log('after: event 1');
- });
- publisher.fire('event1');
before和after是针对function或者在这里特定是对handler的
但不一定要用在publisher还可以用在其它地方
没懂啊