原型对象有什么用呢,
javascript吧
全部回复
仅看楼主
level 1
可不可以理解为默认值,好像不写原型,创建的对象一样能用啊。
2021年03月11日 12点03分 1
level 13
原型对象与 js 里的类(class)相关,是 js 实现类的基础。
原型对象的具体体现就是 js 函数上的 prototype 属性。当使用 new 关键字调用一个函数去构造对象的时候,会以这个属性为模板生成一个对象,然后再交由函数去进行处理。
确实,不写原型对象也照样能创建对象,甚至把 prototype 属性删掉也没问题,但既然它存在,它就必定有和原始方式不一样的地方,而且说到底,js 中的所有对象都有一个最初的原型:Object.prototype,它不可被删除,不可被覆盖,是 js 中对象的实现基础。
对于那些只有数据值的对象(类)而言,原型对象确实没什么用处,但是如果对象上有函数(方法)呢?虽然对象的数量很少的时候确实没什么问题,但是如果你需要很多个这种对象,而且这些对象上的函数都是一样的时候,你再和原型对象写法去比较,就会发现:原始写法占用的内存比原型对象写法多很多,而且还比原型对象写法慢!
为什么?对于原始写法来说,每创造一个对象都是完完全全从头到尾地去再现每一处细节,而对于原型对象写法来说,虽然对于那些每一个对象都不一样的地方没什么办法,但是对于那些一样的地方(函数),它可以直接套上去就完事了,效率非常高。而且原始写法生成的函数,每一个都需要占用内存,但原型对象写法只需要在每一个对象上面留一个引用就好了,正真占内存的就只有原型对象上的本体。
说到底,原型对象真正的用途是在类上,如果你不需要类,那么自然不需要用到原型对象,因为你还没有触及到原型对象能够真正发挥本领的领域。
2021年03月11日 15点03分 2
懂了,谢谢大佬写这么多[乖]
2021年03月11日 15点03分
1