一:原型对象是什么
创建一个函数的时候会生成一个对象,这个对象就叫做原型对象(prototype),所有原型对象会自动获得一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的指针。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/64257d64dd28a47a5a71eb9f6b4bfb35.png)
二: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)
五:原型链
通过继承关系形成的链条,子类可以访问父类,父父类的方法。