面向对象类

类与实例

1:类的声明
	1:第一种方式 用构造函数模拟类的方式 
		function Animal() {  this.name = 'name'}
	2: 第二种方式 ES6 class 
		class Animal2 {   constructor(name) {  this.name = 'name';  } }
2:生成实例
	new Animal(), new Animal2()

类与继承

如何实现继承
	1: 借助构造函数实现继承
		function Parent1() {
          this.name = 'parent1';
		}

		function Child1() {
    		Parent1.call(this); //apply
    		this.type = 'child1';
		}
		console.log(new Child1())
		 改变Parent1运行时刻this指向 Parent1 原型链上的东西并没有被Child1 继承
	
	2: 借助原型链实现继承
		function Parent2(){
   			this.name = 'parent2';
		}

		function  Child2() {
    		this.type = 'child2';
		}
		Child2.prototype = new Parent2();
		var child2 = new Child2() 
		console.log(child2);

	3: 组合继承方式一
		function Parent4() {
   			 this.name = 'parent4';
    		 this.play = [1,2,4];
		}
		function Child4() {
 		   Parent4.call(this);
 		   this.type = 'child4'
		}
		// Child4.prototype = new Parent4()

		Child4.prototype = Parent4.prototype;
		var child41 = new Child4();
		var child42 = new Child4();
		child41.play.push(5)
		console.log(child41,child42)

	4: 组合继承方式二
			
	 function Parent5() {
   			 this.name = 'parent5';
  			  this.play = [1,2,5];
	}
	function Child5() {
  	  Parent5.call(this);
  	  this.type = 'child5'
	}

	// Child5.prototype = Parent5.prototype;

	Child5.prototype =Object.create(Parent5.prototype);
	Child5.prototype.constructor = Child5;
	var child51 = new Child5();
	var child52 = new Child5();
	child51.play.push(5)
	console.log(child51,child52)
	 //备注 Child5.prototype.constructor = Child5;Child5.prototype =Object.create(Parent5.prototype);
继承的几种方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值