麦奏
BlogJava | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

2007年2月22日

JS简单AOP实现(转)
 1    1. <script>  
 2    2.       
 3    3.     function Test(){  
 4    4.         this.say1 =  function(s){  
 5    5.             alert(s);  
 6    6.         }  
 7    7.         this.say2 =  function(s){  
 8    8.             alert(s);  
 9    9.         }  
10   10.     }  
11   11.   
12   12.     function actsAsAspect(object) {  
13   13.       object.yield = null;  
14   14.       object.rv    = { };  
15   15.       object.before  = function(method, f) {  
16   16.         var original = eval("this." + method);  
17   17.         this[method] = function() {  
18   18.           f.apply(this, arguments);  
19   19.           return original.apply(this, arguments);  
20   20.         };  
21   21.       };  
22   22.       object.after   = function(method, f) {  
23   23.         var original = eval("this." + method);  
24   24.         this[method] = function() {  
25   25.           this.rv[method] = original.apply(this, arguments);  
26   26.           return f.apply(this, arguments);  
27   27.         }  
28   28.       };  
29   29.       object.around  = function(method, f) {  
30   30.         var original = eval("this." + method);  
31   31.         this[method] = function() {  
32   32.           this.yield = original;  
33   33.           return f.apply(this, arguments);  
34   34.         }  
35   35.       };  
36   36.     }  
37   37.       
38   38.     function beforeHander(s){  
39   39.         alert("aspect said:");  
40   40.     }  
41   41.     function afterHander(s){  
42   42.         alert("said by aspect");  
43   43.     }  
44   44.   
45   45.     var t = new Test();  
46   46.     actsAsAspect(t);  
47   47.     t.before("say1",beforeHander);  
48   48.     t.after("say2",afterHander);  
49   49.       
50   50.     test = function(){  
51   51.         t.say1("hello1");  
52   52.         t.say2("hello2");  
53   53.     }  
54   54.     test();  
55   55. </script>  

posted @ 2007-04-11 15:32 麦奏 阅读(573) | 评论 (0) | 编辑 收藏
 
hibernate二级缓存
     摘要:   阅读全文
posted @ 2007-03-02 22:59 麦奏 阅读(235) | 评论 (0) | 编辑 收藏
 
js一些小方法
1.
1function test(){
3    alert(arguments.length);//实参的数目
4     alert(test.length);//行参的数目
5}
2.callee返回当前方法的引用
1function test(){
3    alert(arguments.callee.length);//行参的数目
4     //arguments.callee返回当前方法的引用,所以
5     //arguments.callee == test
6    //所以实际上仍然伪test.length
7}
3.call(),apply()
call()传递单个参数,apply()参数传递为数组参数
1var Class = {
2  create: function() {
3    return function() {
4      this.initialize.apply(this, arguments);
5    }

6  }

7}

8

 1var vehicle=Class.create();//vehicle为一个方法,所以可以有prototype属性。返回的是一个构造函数。
 3vehicle.prototype={
 4    initialize:function(type){//这个方法在创建vihicle的对象的时候被调用
 5        this.type=type;
 6    }

 7    showSelf:function(){
 8        alert("this vehicle is "+ this.type);
 9    }

10}

11
12var moto=new vehicle("Moto");
13moto.showSelf();
14
posted @ 2007-02-28 23:58 麦奏 阅读(154) | 评论 (0) | 编辑 收藏
 
style,id,class,element

等级高的规则会覆盖掉等级低的规则。
具有style属性编写的规则具有最高的等级。具有ID选择器的规则比没有ID选择器的规则等级高。具有类选择器的规则比只有类型选择器的规则等级高。如果两个规则的等级相同,后定义的覆盖之前定义的规则。
a->style样式的规则,如果有a=1
b->ID选择器的总和
c->类,伪类和属性选择器的总和
d->类型选择器和伪元素选择器的总和
以style----id------class------element的顺序排列。

选择器 特殊性a~d 特殊性总和
style="" 1,0,0,0 1000
#x #y{} 0,2,0,0 200
#x .z{} 0,1,1,0 110
div #x{} 0,1,0,1 101
#x{} 0,1,0,0 100
p .z .m{} 0,0,2,1 21
p .z{} 0,0,1,1 11
div p{} 0,0,0,2 2
p{} 0,0,0,1 1
posted @ 2007-02-25 22:09 麦奏 阅读(184) | 评论 (0) | 编辑 收藏
 
Ajax in Action笔记二
     摘要:   阅读全文
posted @ 2007-02-24 22:08 麦奏 阅读(181) | 评论 (0) | 编辑 收藏
 
Hibernate数据关联
     摘要:   阅读全文
posted @ 2007-02-23 11:54 麦奏 阅读(612) | 评论 (0) | 编辑 收藏
 
Ajax in Action笔记一
 1 var  net  =   new  Object();//命名空间,防止全局变量的冲突
 2 net.READY_STATE_UNINITIALIZED  =   0 ;
 3
 4 net.ContentLoader  =   function (url, onload, onerror) {
 6     this .url  =  url;
 7     this .req  =   null ;
 8     this .onload  =  onload;//保存是方法名
 9     this .onerror  =  (onerror)  ?  onerror :  this .defaultError;
10     this .loadXMLDoc(url);
11 }

12 net.ContentLoader.prototype  =   {
13    loadXMLDoc: function (url) {
15       
16        try {
                   var  loader  =   this ;//重点!loader为new出来的对象。
                  this .req.onreadystatechange  =   function () {
20            loader.onReadyState.call(loader);//重点! 因为loader为new出来的对象,所以它可以调用对象内部的属性或方法。应该可以像在catch方法内一样使用this调用原型内的方法。
21              }

23           }

24        catch (err) {
26            this .onerror.call( this );//同上
27       }

28    }

29    onReadyState: function () {
31        var  req  =   this .req;
32        var  ready  =  req.readyState;
33       
34        this .onload.call( this );//this.onload为一个方法名。这样是调用new出来的对象的回调函数。
35       
36        this .onerror.call( this );
37    }

38    defaultError: function () {
40       alert();
41    }

42 }

//这样做,可以把所有的状态都保存在对象内部,而不是设置一个全局变量。
posted @ 2007-02-22 23:57 麦奏 阅读(147) | 评论 (0) | 编辑 收藏
 
随笔:11 文章:0 评论:0 引用:0
<2007年2月>
日一二三四五六
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与

留言簿(2)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • Ajax in Action笔记(2) (rss)
  • css(4) (rss)
  • database(2) (rss)
  • java (rss)
  • javascript(4) (rss)
  • linux (rss)
  • perl (rss)
  • vi (rss)

随笔档案

  • 2007年4月 (1)
  • 2007年3月 (1)
  • 2007年2月 (9)

搜索

  •  

最新评论

阅读排行榜

  • 1. Hibernate数据关联(612)
  • 2. JS简单AOP实现(转)(573)
  • 3. z-index(426)
  • 4. hibernate二级缓存(235)
  • 5. style,id,class,element(184)

评论排行榜

  • 1. JS简单AOP实现(转)(0)
  • 2. hibernate二级缓存(0)
  • 3. js一些小方法(0)
  • 4. style,id,class,element(0)
  • 5. Ajax in Action笔记二(0)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 麦奏