JS原型对象prototype以及原型链

本文介绍了JavaScript中的堆栈概念,重点讲解了原型对象和原型链。原型对象作为新对象的模板,通过this共享属性给新对象。原型链是通过prototype属性形成的,允许对象间共享方法和属性。在实例解析中,解释了原型只在内存中创建一次,而构造函数每次new都会创建新的实例。属性搜索理论阐述了查找属性的顺序,先在实例自身查找,然后在原型中查找。通过示例展示了原型链的工作原理。
摘要由CSDN通过智能技术生成

一、堆栈

堆&栈:
两者都是存放临时数据的地方。
栈是先进后出的,就像一个桶,后进去的先出来,它下面本来有的东西要等其他出来之后才能出来。
堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。对于堆,我们可以随心所欲的进行增加变量和删除变量,不用遵循次序。
栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
堆(数据结构):堆可以被看成是一棵树,如:堆排序;
栈(数据结构):一种先进后出的数据结构。

二、原型对象&原型链

1、原型对象:

原型对象是新对象的模板,它将自身的属性通过this共享给新对象。一个对象不但可以享有自己创建时和运行时定义的属性,而且可以享有原型对象的属性。

个人理解类似于子类与父类关系,创建的实例类似于原型对象的子类,虽然子类可以调用父类的属性和方法,但是在JS里面有限制,则在原型对象设置了this的属性和方法才能够被子类调用获取,若没有this的属性和方法仅仅只是原型对象自身可以使用。这点一定要注意!

2、原型链:

实际上,在每个函数对象创建的时候,都会自带一个prototype的属性,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值