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

来源:互联网 发布:苹果7蜂窝数据快捷键 编辑:程序博客网 时间:2024/05/19 00:42

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


1.工厂模式


工厂模式弊端:没有解决对象识别问题,即不知道对象的类型(对象类型:内部对象、宿主对象、开发人员自定义的对象)

   对象类型请参考:http://blog.sina.com.cn/s/blog_70a3539f0101eww3.html



2.构造函数模式


优点:实例标识为一种特定的类型,即知道person1person2)是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高级编程第三版》,其余描述为自己的理解。有错误欢迎指出,谢谢!

原创粉丝点击