JS原型链和继承(包含ES6class类的继承)
JS原型链和继承(包含ES6class类的继承)
ES5原型链
let wat = {
name: '喵喵'
}
console.log(wat.__proto__)
//对象通过__proto__属性获取原型,对象的最顶层原型为Object.__proto__为null
var Cat = function (name, age) {
this.name = name
this.age = age
this.eat = function () {
console.log('吃鱼')
}
//this指向实例函数
console.log(this)
}
Cat.prototype.ww = function () {
console.log('ww')
}
let mm = new Cat('猫咪', '2')
mm.eat() //eat为实例对象自身的方法
mm.ww() //ww为构造函数原型上的方法
//构造函数通过prototype属性获取原型
var Mao = function () {
}
Mao.prototype = new Cat() //es5通过原型链实现继承
let mao1 = new Mao()
mao1.ww()
ES6继承
class User {
constructor(name, age) {
this.name = name
this.age = age
}
login() {
console.login('登录')
}
}
class Admin extends User { //通过extends实现继承
delete() {
console.log('删除')
}
}
let peo1 = new Admin('as', '22')
console.log(peo1)

浙公网安备 33010602011771号