Web前端必做笔记之一:原型对象(一)
<script>
//什么是原型?
//每一个对象都有他的原型对象,它可以使用自己原型对象上的所有属性和方法
let cat = {
name:"喵喵"
}
cat._proto_.eat = function(){ //这里把eat加到cat的原型上, _proto_ 就是原型
console.log("吃鱼");
}
cat.eat(); //吃鱼
//获取原型的方法
//1.是通过对象的_proto_获取
//2.是通过构造函数的prototype属性拿到原型
function Cat(name,age){
this.name = name;
this.age = age;
}
let cat = new Cat("喵喵",2);
cat.eat() //这是调用不了的,因为cat没有这个方法的
//prototype属性拿到原型
Cat.prototype.eat = function(){
console.log("吃鱼");
}
cat.eat() // 这时它的原型就有这个方法
</script>
<script>
//原型对象有什么用?
//扩展对象,不管是js的内置对象,还是自己定义的,都可以用prototype来扩展
let date = new Date();
console.log(date);
//目标:输出2021年10月21
Date.prototype.formate = function(){
let year = this.getFullYear();
let month = this.getMonth() + 1; //月份是从0开始查找的
let date = this.getDate();
return `${year}年${month}月${date}日`
}
console.log(date.formate());
date.formate()
</script>
总结
1.每一个对象都有他的原型对象,它可以使用自己原型对象上的所有属性和方法
2. 获取原型的方法
(1).是通过对象的_proto_获取
(2).是通过构造函数的prototype属性拿到原型
3. prototype可以用来进行扩展对象