第六章 面向对象的程序设计
第一节 理解对象
- ES中有数据属性和访问器属性两种属性,介绍一下数据属性中描述其行为的4个特性-Configurable/Enumerable/Writable/Value?
- 介绍一下访问器属性中的4个特性-Configurable/Enumerable/Get/Set?
- 如何为对象定义多个属性?
- 如何读取对象属性的特性?
第二节 创建对象-工厂模式和构造函数模式
- 什么是工厂模式?使用工厂模式创建一个对象。
- 什么是构造函数模式?用构造函数模式创建一个对象。
- 构造函数与工厂模式的区别?
- var person1 = new Person("John", 29)这一过程中,new的作用是?
- 如何检测对象person1和person2的类型?
- 构造函数和普通函数的区别?
- 构造函数存在什么缺点?
第三节 创建对象-原型模式
- 什么是prototype属性?简单介绍一下函数的prototype属性。
- 什么是原型对象,其包含哪些属性?如何为原型对象增加属性?
- 原型模式中,实例可通过指针获取构造函数中原型对象的数据,给实例增加属性时,是否会影响到原型对象?
- in操作符有什么作用(仅需说明单独使用的情况,不需说明for-in中的in)?与hasOwnProperty有何区别?
- 谈谈纯原型模式的缺点?
- 如何解决原型模式的缺点(组合使用构造函数模式和原型模式)?
第四节 创建对象-动态原型模式和寄生构造函数模式
- 介绍一下动态原型模式?
- 介绍一下寄生构造模式?
第五节 继承-原型链、借用构造函数和组合继承
- 以下为实现原型链继承的基本模式,请画出该例中实例、构造函数及原型间的关系图(不需要画出Object Prototype)。
- 原型链继承中存在哪些问题?
- 简述借用构造函数的思路?
- 简述组合继承?