前言:属性读取可以使用 obj.xxx 或 obj[xxx]。这两者有什么区别吗。
1. obj.xxx
使用 obj.xxx 读取属性,会转化为对象的内部方法 [[SET]](obj, 'xxx', obj)。第一个参数是读取对象,第二个参数是对象的属性,第三个参数是 this 指向
2. obj[xxx]
使用 obj[xxx] 读取属性,会转化为对象的内部方法 [[SET]](obj, xxx is Symbol ? xxx : String(xxx))。第一个参数是对象,第二个参数是三目运算,判断属性是不是 symbol,是 symbol 直接读,不是 symbol 先转换为字符串。第三个参数是 this 指向。