javaScript中面向对象和原形prototype

<script>
	
	function Person()
	{
		this.category = 'main';
		this.name;
		this.age;
	}
	Person.prototype =
	{
		setName : function(newName){this.name = newName},
		setAge : function(newAge) {this.age = newAge},
		getName : function(){return this.name},
		getAge : function(){return this.age}
	}
	
	function Teacher()
	{
		this.profeesional = '教师';
	}
	Teacher.prototype = new Person();
	var t = new Teacher();
	t.setAge(33);
	alert(t.age);
	
	var p = new Person();
	alert(p.category)
	p.setAge(22);
	p.setName('flx');
	alert(p.getName());
	alert(p.getAge());
	
	
</script>

 <script>
 	window.onload = function()
	{
		function Teacher()
		{
			this.age = 22;
			this.name = 'flx';
			this.getName = function(){return this.name};
			this.setName = function( newName ){this.name = newName};
			
			this['getAge'] = function(){return 'age'};
			this['setAge'] = function(newAge) {this.age = newAge};
		}
		
		var t = new Teacher();
		
		alert(t.getName());
		alert(t.getAge());
		
		t.setName('lhm');
		t.setAge(33);
		
		alert(t.getName());
		alert(t.getAge());
	}
 </script>
 
	function extend(obj,prop)
		{
			function F(){}
			/**
			 * 当第一次调用exten方法的时候,obj是一个json格式的对象
			 */
			if(typeof obj == "object") // obj是一个json格式的对象
			{
				for(var name in obj)	
				{
					F.prototype[name] = obj[name];
				}
			}else{	//obj是一个函数
				F.prototype = obj.prototype; //完成集类属性的继承
				for(var name in prop)
				{
					F.prototype[name] = prop[name];
				}
			}
			return F;			
		}
		
		  var Person = extend({
		  	id:5 ,
		  	name : 'flx'
		  })
		  var SurPerson = extend(Person,{
		  	sex:'男'
		  })
		  var sp = new SurPerson();
		  alert(sp.name)
		  alert(sp.id)
		  alert(sp.sex);


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值