重新熟悉javascript object

今天碰巧在网上看了一篇关于介绍创建js对像的文章,读后才发觉以前所了解的js又开始陌生了,剩下的关于prototype.js的介绍,只是粗略的浏览了一下,明天再继续认真拜读

以下是文章的url http://hi.baidu.com/lovevc2008/blog/item/4bd2a9dcdfbc4d325882dd96.html

看后可能各位看官应该知道我写这个文章的目的吧

/*
    	//Class 声明方式 -- 创建object -- start 
    	var Class = {
    		create : function() {
    			//返回构造函数
    			return function() {
    				//声明构造函数
    				this.initialize.apply(this,arguments);
    			}
    		}
    	}
    	
    
    	var person = Class.create();
    	
    	person.prototype = {
    	  
    	  //必须重写initialize方法,作为该类的构造器
    	  initialize : function(name) {
    	  	this.name = name;
    	  },
    	  
    	  showMyName : function() {
    	  	alert(this.name);
    	  }
    	}
    	
    	var personObj = new person("我是啊杰");
    	
    	personObj.showMyName();
    	
    	//Class 声明方式 -- 创建object -- end
    	*/
    	
    	/*
    	//匿名声明方式 -- 创建object -- start
    	var person = function(name) {
    		this.name = name
    	}
    	
    	person.prototype = {
    		showMyName : function() {
    			alert(this.name);
    		}
    	}
    	new person("叼你老屎").showMyName();
    	//匿名声明方式 -- 创建object -- end
    	*/
    	
    	/*
    		//函数声明方式 -- 创建object -- start
    	function person(name) {
    		this.name = name;
    	    
    	    this.showMyName = function() {
    	    	alert(name); 
    	    }
    	}
    	
    	//函数声明方式 -- 创建object -- end
    	
    	new person("叼你老屎").showMyName();
    	*/
    	
    	/*
    	//prototype.js声明方式 -- 创建object -- start
 		var person = {
 			name : '靓仔',
 			
 			showMyFirendName : function() {
 				alert(this.name);
 			}
 		}
 		
 		//prototype.js声明方式 -- 创建object -- end
 		
 		//要注意prototype.js声明方式,它不用new就可以直接拿来使用,给我感觉像static
 		person.showMyFirendName();
 		
 		*/

 

 
//主要测试self,this关键字
function getWord() {
     	alert('叼你老屎!总稳你唔到!');
     }
      
     //父类--start prototype 默认为null
     function obj1(num) {
         this.num = num
     }
     
     obj1.prototype = {
       say:function() {
       	 alert('叼你老屎啊,我是你老豆啊!敢重新编我讲的话!');
       }
     }
      //父类--end
      
     //子类--start
     function obj2(str) {
      this.str = str;
     }
     
     var o1 = new obj1(3);
     
     obj2.prototype = o1;
     
     /*
     	//可以在重写prototype的say方法,但是不会对定义子类时定义say方法产生影响,其它重写全部影响
	     obj2.prototype.say = function (){ 
	        alert('老豆编下你D话姐,唔会对你有影响架,把口系我度,总有因为我是帅哥');	
	     }
     */
     
        
    
    //obj2.prototype.num = '8'; 
     
    /*
 	//可以在定义子类时,定义say方法,但是不会对实例化后o2重写的方法say,prototype链上的say方法产生影响
     obj2.say = function () {
       alert("老豆我讲个D野应该无编你呱,因为我句话同你表达的野都唔同,总有因为我是靓女");
     }
     */
   
     
     //子类--end
     
     
     var o2 = new obj2('wenzj');
     
     /*
     	 //可以在实例化后,重写say方法,但是重写的方法对父类,或prototype链中的所有属性不产生影响
	     o2.say = function () {
	         alert('老豆编下你D话姐,唔会对你有影响架,把口系我度,总有因为我是帅哥');
	     }
     */
    
     
     
     
     o2.num = 8;
     
     o1.say();
     
     o2.say();
     
     obj2.say();
     
     alert(o1.num);
     
     alert(o2.num);
     
     /*
       总结:js中的prototype相当于java的全局作用域  如
       obj.prototype = {};
       凡是对像都有prototype,prototype从而形成环链表,环链表当遇到prototype为null的时,prototype链断开
       形成prototype链中的属性和行为都是共享的,如果重写链中的某一属性或行为,相当于java中在子类里增加了的
       同一属性或重写父类行为,java中父类的属性和行为都是不受子类的影响,但是js有个特殊地方就是当你通过prototype重写时,会对prototype链中的
       所有同一属性或行为都是新增或重写后的,相当于父类和子类的所有属性和行为都一模一样
       class obj {}中的‘{}’
      */

  

 

 其实今天也写了关于dwr方面的东东,程序简单,只是简单的dwr搭建,就不上传了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值