JS基础(七)--原型对象

本文介绍了JavaScript中的原型概念,包括对象的__proto__属性、构造函数的prototype以及类的prototype。通过实例展示了如何扩展对象方法,并探讨了构造函数中this的指向。接着,讨论了类的定义及方法,最后讲解了JavaScript的继承机制,包括ES5和ES6的不同实现方式。
摘要由CSDN通过智能技术生成

一、原型的基本概念
// 什么是原型?
// 每一个对象都有他的原型对象,他可以使用自己原型对象上的所有属性和方法

<script>
let cat = {
	naem: "喵喵"
}
cat.__proto__.eat = functiob(){
	console.log("吃鱼")
}
cat.eat();


// 获取原型的方法:
// 1、通过对象的__proto__获取
// 2、是通过构造函数的prototype 属性拿到原型
// 3、通过类的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())

二、类与继承

<script>
// ES6类的方法
class Cat {
	constructor(name ,age){
		this.name = name;
		this.age = age;
	}
}
Cat.prototype.eat = function(){
	console.log("吃鱼")
}
let cat = new Cat("喵喵"2)
cat.eat();

</script>

3、继承

<script>
class User{
	constructor(username,password){
		this.username = username;
		this.password = passoword;
	}
	login(){
		console.log("登录")
	}
}

class Adimin extends User{
	deletePersion(){
		consloe.log("删除一个人")
	}
}
 let admin  =  new Admin();
 admin.login();


// ES5  继承
fucntion User(username,password){
	this.username = username;
	this.password = password;
	this.login = function(){
		console.log("登录")
	}
}
function Admin(){
	this.deletePerson = function(){
		console.log("删除一个人")
	}
}

Object.prototype.login = function(){
	console.log("Object 原型上的登录方法")
}

Admin.prototype = new User();

let admin = new Admin();
admin.login(); // Object 原型上的登录方法"

let a = [1,2,3]
a.login(); // Object 原型上的登录方法"
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值