一,原型对象
1.1 什么是原型
每一个对象都有他的原型对象,他可以使用自己原型对象上的所有属性和方法
let cat = {
name:"miao"
}
cat.__proto__.eat = function (){
console.log("eat fish")
}
cat.eat(); //eat fish
1.2 获取原型的方法
(1)通过对象的__proto__获取
(2)通过构造的prototype属性拿到原型
(3)通过类的prototype属性
function Cat (name,age){
this.name = name
this.age = age
}
let cat = new Cat ("miaomiao",2)
Cat.prototype.eat = function(){
console.log("eat fish")
}
cat.eat(); //eat fish
1.3 原型对象有什么用
如果我们需要在javascript的内置对象做一个扩展我们就可以用到他的原型对象
如果我们需要将Date中的时间格式改变那么我们就可以用到他的原型对象
let date = new Date();
Date.prototype.formate = function(){
let year = this.getFullYear();
let month = this.getMonth()+1;
let day = this.getDate();
// console.log("今年是:"+year+"年"+month+"月"+day+"日")
return `今年是:${year}年${month}月${day}日`
}
let data = date.formate();
console.log(data)
1.4 继承
子对象可以使用父对象上的所有属性和方法就是继承
在javascript中只谈到继承时,只有一种结构:对象
案例:
在登录的过程中,涉及到权限管理,普通用户有登录的功能,管理员既有登录的功能又有删除用户的功能这时候我们就可以使用到继承,创建两个类 让管理员的类去继承普通用户的类
代码:
class User{
constructor(username,password){
this.username = username;
this.password = password;
}
login(){
console.log("登录")
}
}
class Admin extends User{
deletePerson(){
console.log("删除一个人")
}
}
let admin = new Admin()
admin.login()
如何用原型实现继承:
那就使用prototype & 构造函数