Javascript中的对象:无序属性的集合,其属性可以包含基本值、对象或者函数
创建对象(工厂模式;构造函数模式;原型模式;组合使用构造函数模式和原型模式;动态原型模式;寄生构造函数模式)
创建对象 | 原理理解 | 优缺点 |
---|---|---|
工厂模式 | 抽象了创建具体对象的过程,用函数来封装以特定接口创建对象的细节 | 优:解决了创建多个相似对象的问题;缺:没有解决对象识别的问题; |
构造函数模式 | 创建自定义的构造函数,定义自定义对象类型的属性和方法 | 通过new操作符调用,函数名第一个字母大写;缺:每个方法都要在实例上重新创建一遍 |
原型模式 | 通过调用构造函数而创建的那个对象的原型对象 | 优:让所有对象实例共享它所包含的属性和方法;缺: |
组合使用构造函数模式和原型模式 | ||
动态原型模式 | ||
寄生构造函数模式 |
继承(原型链;借用构造函数;组合继承;原型式继承;寄生式继承;寄生组合式继承)
继承 | 原理理解 | 优缺点 |
---|---|---|
原型链 | ||
借用构造函数 | ||
组合继承 | ||
原型式继承 | ||
寄生式继承 | ||
寄生组合式继承 |
**注:
constructor属性:
prototype属性:对象,是包含可以由特定类型的所有实例共享的属性和方法
hasOwnPrototype()方法:检测一个属性是