-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[js] 第45天 写出几种创建对象的方式,并说说他们的区别是什么? #171
Comments
const a = new Object() // 创建, 不推荐
const b = {} // 赋值, 性能比a要好
const c = Object.create() // 继承创建, Object.create(null) 很多框架都有用来做性能优化 |
new Object()直接通过构造函数创建一个新对象。
使用字面量的方式更简单,其实他俩是一样的。 工厂模式
优点是 可以解决创建多个相似对象的问题,缺点是 无法识别对象的类型。 构造函数
优点是 可以创建特定类型的对象,缺点是 多个实例重复创建方法 (构造函数+原型)组合模式
优点 多个实例引用一个原型上的方法 比较常用 动态原型
优点 可以判断某个方法是否有效,来决定是否需要初始化原型,if只会在仅在碰到第一个实例调用方法 寄生构造函数模式
除了使用 稳妥模式
除了使用 Object.create()
传入一个原型对象,创建一个新对象,使用现有的对象来提供新创建的对象的__proto__,实现继承。 参考:《JavaScript高级程序设计第三版》、MDN |
let obj = {}
let obj = new Object
let obj = Object.create({}) |
|
|
// 创建对象
|
第一种 字面量 var obj = {} |
第45天 写出几种创建对象的方式,并说说他们的区别是什么?
The text was updated successfully, but these errors were encountered: