您的位置:首页 > Web前端 > JavaScript

javascript创建对象的7种模式(赋:优点+缺点分析)

2017-09-07 16:15 387 查看

Js创建对象方法的模式(共七种)


1.工厂模式






工厂模式弊端:没有解决对象识别问题,即不知道对象的类型(对象类型:内部对象、宿主对象、开发人员自定义的对象)
   对象类型请参考:http://blog.sina.com.cn/s/blog_70a3539f0101eww3.html


2.构造函数模式






优点:实例标识为一种特定的类型,即知道person1(person2)是Person对象的实例
弊端:




也就是说相同的Person实例都有不同Function的实例,造成作用域链和标识符解析不同。如:alert(person1.sayName
== person2.sayName); //false

3.原型模式(创建的每个函数都有prototype属性)



优点:解决了构造函数遗漏的弊端,使原对象的属性和方法为所有新的实例共享

     弊端:属性共享

4.构造和原型组合使用模式(吸取两者的优点)



5.动态原型模式(上面是分两块写,下面是在构造函数中写原型方法)

     




    举例:对象字面量表示法- var person = {};

6.寄生构造函数模式( 写法与工厂模式差不多 )

  




7.稳妥构造函数模式

  


   特点:没有公共属性(即this.name = name;的结构代码),实例对象时不用new,访问某些属性只能通过某个方法(如上面的name)



创建对象总结:
每个构造函数都有一个原型对象,原型对象包含指向构造函数的指针。对象的实例都包含一个指向原型的[[prototype]]。

原型知识可参考:http://blog.csdn.net/TionSu/article/details/77800816

参考:图文代码参考《JavaScript高级编程第三版》,其余描述为自己的理解。有错误欢迎指出,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: