原型
原型:任何的js对象;
原型链:当访问一个对象的属性或方法时,JavaScript引擎会首先在该对象本身查找,如果找不到,则会沿着原型链向上查找。
!!!每个对象都有它的原型对象(除了 Object.prototype),并可以使用它原型对象的所有属性和方法。
注意:函数也是特殊的对象
获取原型的方法
// 1.对象:_proto_
let person= {
name:'小鹿'
}
person._proto_.todo= function(){
console.log("做牛马")
}
person.todo() // 做牛马
// 2.构造函数:prototype
function Person(name,age){
this.name = name;
this.age = age;
}
let person= new Person('小鹿',"18")
Person.prototype.todo = function(){
console.log('做牛马')
}
person.todo () // 做牛马
// 使用案例:格式化时间
let date = new Date();
Date.prototype.format = function(){
let year = this.getFullYear();
let month = this.getMonth() + 1;
let day = this.getDate();
return `${year}年${month}月${day}日`
}
console.log('date.format') //2024年7月19日
类
// 3.类:prototype
class Person{
constructor(name,age){
this.name = name;
this.age = age;
}
}
let person = new Person('小鹿','18')
// 继承
class User{
constructor(username,password){
this.username = username;
this.password = password;
}
login(){
console.log('登录')
}
}
class Admin extends User { // extends
constructor(username,author){
super(username) // super
this.author = author;
}
deletePerson(){
console.log('删除用户')
}
}
let admin = new Admin();
admin.login();