更推荐使用字面量的方式创建对象(无论性能上还是可读性)。因为你使用 的方式创建对象需要通过作用域链一层层找到 ,但是你使用字面量的方式就没这个问题。
- 如何声明一个类?
- 如何实现继承?继承有哪几种方式?
构造函数实现继承:
缺点: 无法继承父类原型对象上的属性
原型链继承:
缺点 : 原型链上的原型对象是共用的 , 实例改变其值 , 其他实例也会发生改变
组合继承:(寄生组合继承)
ES6 (Class类继承):
面向对象的基本特征:多态,继承,封包(完全参考java)
构造方式:
解决了重复实例化的问题 ,又解决了对象识别的问题
工厂模式:
优点: 解决重复实例化
缺点: 无法识别到底是哪个对象的实例
构造方式与工厂模式的区别:
1. 构造方式不会显示创建对象,只要将属性赋值给this,不需要return对象
2. 工厂 在方法内部创建object对象,最后返回object对象,属性和方法都是赋给object对象
原型模式:
函数本身声明为空内容,利用prototype定义一些属性及方法。
好处:让所有实例化的对象都拥有它包含的属性及方法。
原型模式的第二种方式 : json数据定义
混合模式(构造+原型):
对象类型存储的是地址(指针),而原始类型存储的是值
函数参数是对象指针的副本,当参数重新分配对象时,参数的指针会发生变化.两个变量的值也会不相同.
- DOM事件模型有哪些?
捕获和冒泡
- DOM事件级别?
DOM0
缺点: 后定义的事件会被覆盖之前定义的事件
DOM2