什么是原型
每一个对象都有他的原型对象,他可以使用自己原型对象上的所有属性和方法。
获取原型方法
- 通过对象的__proto__获取
- 通过构造函数的prototype属性拿到原型
- 通过类的prototype属性拿到原型
实例1
let cat = {
name: "喵喵"
}
cat.__proto__.eat = function() {
console.log(this.name + "吃鱼")
}
cat.eat()
实例2
function Cat(name, age) {
this.name = name;
this.age = age;
}
let cat = new Cat("喵喵", 2)
Cat.prototype.eat = function() {
console.log(this.name + "吃鱼");
};
cat.eat()
实例3
class Cat {
constructor(name, age){
this.name = name;
this.age = age;
}
}
Cat.prototype.eat = function(){
console.log("吃鱼");
}
let cat = new Cat("喵喵", 2);
cat.eat();
ES5继承: prototype
function User(username, password){
this.username = username;
this.password = password;
this.login = function(){
console.log("login");
}
}
function Admin(){
this.deleteUser = function(){
console.log("delete user");
}
}
Admin.prototype = new User();
let admin = new Admin();
admin.login();