构造函数和原型

本文探讨了JavaScript中构造函数与原型对象的概念及其应用。通过对比两种不同的方法,解释了为何使用构造函数原型可以节省内存。通过示例展示了如何通过原型对象定义公共方法,使得多个实例共享同一函数,避免了内存浪费。同时,介绍了对象原型中的`__proto__`属性,它是如何指向`prototype`并使得实例能够直接调用原型上的方法。
摘要由CSDN通过智能技术生成

构造函数原型

//第二个代码块
/*没用用到函数原型来写方法*/
funtion Car(name,price){
	this.name=name;
	this.price=price;
	this.action=function(){
		console.log('我不是原型的函数');
	}
}
let car1=new Car('玛莎拉蒂','100W');
let car2=new Car('宝马','200W');
console.log(car1.action===car2.action)/*输出结果是false,
解析:因为每实例化一个对象时都会产生一个新内=的空间存着action函数,
再对象很多时候就会出现内存浪费现象*/


//第二个代码块
/*用到构造函数原型来写方法*/
funtion Car(name,price){
	this.name=name;
	this.price=price;
}
Car.prototype.action=function(){
	console.log('我是原型对象的函数');
}
let car1=new Car('玛莎拉蒂','100W');
let car2=new Car('宝马','200W');
console.log(car1.action===car2.action)/*输出结果是true,
解析:原型对象prototype是一直存着的,相当于已经拥有一定的空间,
然后在它里面创建方法的时候就相当于是它自己的函数,可以共享,这个时候外部
对象来调用这个函数时候,就不用重新开辟一个空间来存这个方法了*/

所以一般公共属性用prototype用来定义,节约内存;

对象原型

在第二个代码块中的car1和car2中调用的action函数,为什么呢直接调用不是直接的函数呢?
==因为对象car1和对象car2会有系统自动添加对象原型对象 “__ proto__”,它是指向prototype的。
在这里插入图片描述
在这里插入图片描述

==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值