1、原型的基本概念
// 什么是原型?
// 每一个对象都有他的原型对象,他可以使用自己原型对象上的所有属性和方法
<script>
let cat = {
naem: "喵喵"
}
cat.__proto__.eat = functiob(){
console.log("吃鱼")
}
cat.eat();
// 获取原型的方法:
// 1、通过对象的__proto__获取
// 2、是通过构造函数的prototype 属性拿到原型
// 面试题:构造函数中的this 指向是谁?
// 指向 new 创建的对象
function Cat(name,age){
this.name = name;
this.age = age;
}
let cat = new Cat();
Cat.prototype.eat = function(){
console.log("吃鱼")
}
cat.eat();
</script>
2、原型对象有什么用?
// 扩展对象的方法,不管是原始的还是内置的,都可以通过原型的方法扩展
let date = new Date();
Date.prototype.formate= function(){
let year = this.getFullYear();
let month = this.getMonth() + 1;
let date = this.getDate();
return `$(year)年$(month)月$(date)日`
}
// 目标 :输出 2022年4月14日
console.log(date.formate())