前言
对象是 JavaScript 中最重要也是最复杂的类型。
在 【JavaScript 简史与面向对象之道】 中,我们探讨了什么是对象和 JS 中对象的设计原则(基于原型),这篇文章我们将从数据结构和运行时两个角度展开,看看 JS 中的对象系统究竟是如何实现的。
1 对象的属性
上篇文章我们说到,从逻辑上讲,对象是属性的集合,而 属性其实都有更复杂的结构,而不仅仅是键值对。 属性又分为数据属性(data property)和访问器属性(accessor property),我们分别来看一下。
1.1 数据属性
我们先定义一个简单的对象:
let rectangle = {
height