// 原型 Pet
// 实例 p1 p2
// 原型链
// p1.__proto__ => Pet.prototype => Pet constructor
// 有什么用?
// 继承、公共属性、方法
// es5 类
function Pet(name,sex) {
this.name = name
this.sex = sex
this.say = function (word) {
console.log(word)
}
}
// 创建实例
var p1 = new Pet('牛牛','公')
p1.say(" I'm a dog ")
// es6 类
class Pet {
constructor()
}
// 创建实例
const p2 = new Pet('馍馍', '母')
p2.say(" I'm a cat ")
总结:
构造函数是使用了new关键字的函数,用来创建对象,所有函数都是Function()的实例
原型对象是用来存放实例对象的公有属性和公有方法的一个公共对象,所有原型对象都是Object()的实例
原型链又叫隐式原型链,是由__proto__属性串联起来,原型链的尽头是Object.prototype