JavaScript对象上
Posted sameen1900
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript对象上相关的知识,希望对你有一定的参考价值。
- 基于类:先有类,然后从类实例化对象,类与类之间又可能会形成继承、组合等关系。类又往往与语言的类型系统整合,形成一定编译时的能力。
- 基于原型的面向对象系统通过“复制”的方式来创建新对象。一些语言的实现中,还允许复制一个空对象。这实际上就是创建一个全新的对象。
javascript 并非第一个使用原型的语言,在它之前,self、kevo 等语言已经开始使用原型来描述对象了
原型系统的“复制操作”有两种实现思路:
- 一个是并不真的去复制一个原型对象,而是使得新对象持有一个原型的引用;
- 另一个是切实地复制对象,从此两个对象再无关联。
JavaScript 显然选择了前一种方式。
JavaScript 的原型
如果所有对象都有私有字段[[prototype]],就是对象的原型;
读一个属性,如果对象本身没有,则会继续访问对象的原型,直到原型为空或者找到为止。
- ES6 以来,JavaScript 提供了一系列内置函数,以便更为直接地访问操纵原型。三个方法分别为:
- Object.create 根据指定的原型创建新对象,原型可以是 null;
- Object.getPrototypeOf 获得一个对象的原型;
- Object.setPrototypeOf 设置一个对象的原型。
利用这三个方法,我们可以完全抛开类的思维,利用原型来实现抽象和复用。
下一篇我们将追溯一下早年的 JavaScript 中的原型和类
此文章为3月Day08学习笔记,内容来源于极客时间《重学前端》,推荐该课程。
以上是关于JavaScript对象上的主要内容,如果未能解决你的问题,请参考以下文章
FindBugs : EI_EXPOSE_REP 背后的真正威胁