js的原型链以及继承

一:原型对象是什么

创建一个函数的时候会生成一个对象,这个对象就叫做原型对象(prototype),所有原型对象会自动获得一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的指针。
在这里插入图片描述
二:prototype与__proto_ _的区别

  • 所有对象都有__proto_ _,每个构造函数都有prototype属性。
  • IE不支持__protoype_属性,其他浏览器支持,故不考虑用此属性做兼容

三:继承

  • 子类继承父类
 function Father() 
    {
	   this.age=1;
	   this.f=function()
	   {
	     console.log("xx")
	   }
	}
    function Son(){}
    Son.prototype=new Father();
	var son=new Son()
	console.log(son.age)//1
  • 子类调用父类的方法(想不明白,以后再说)
  • es6直接用extends
class Animal { 
  constructor(name) { 
  this.name = name;  
  }    
  speak() {
   console.log(this.name + ' makes a noise.'); 
	}
}
class Dog extends Animal { 
 constructor(name) {   
 super(name); // call the super class constructor and pass in the name parameter 
 }
 
  speak() {
	  console.log(this.name + ' barks.'); 
	  }
  }
 
let d = new Dog('Mitzie');
 d.speak(); // Mitzie barks.

四:多态(同java)

五:原型链

通过继承关系形成的链条,子类可以访问父类,父父类的方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值