-
Notifications
You must be signed in to change notification settings - Fork 0
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
学习总结の创建对象 #7
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
参考: JavaScript深入之创建对象的多种方式以及优缺点 ,by 冴羽,《JavaScript高级程序设计》
1. 工厂模式
用函数来封装以特定接口创建对象的细节。需要返回一个对象
缺点: 能无数次创建相似的对象,无法识别对象,每一个实例都指向同一个原型(不知道是谁家孩子)
2. 构造函数模式
构造函数首字母大写
调用new会:
优点: 实例可以识别为一个特定的类型,实例对象中,都有一个constructor属性(解决谁家孩子问题)
缺点: 创建功能一样的函数
3. 原型模式
优点:方法不会重新创建
缺点:1. 所有的属性和方法都共享 2. 不能初始化参数
3.1 原型模式优化
优点: 实例可以通过constructor属性找到所属构造函数
缺点: 1. 所有的属性和方法都共享 2. 不能初始化参数
4. 组合模式
构造函数模式 用于定义实力属性,原型模式用于定义方法和共享的属性。
优点:该共享的共享,该私有的私有,使用最广泛的方式
缺点:有的人就是希望全部都写在一起,即更好的封装性
The text was updated successfully, but these errors were encountered: