javascript创建对象的方法--组合模式
javascript创建对象的方法--组合模式
一、总结
0、作用:解决原型模式对象独有属性创建麻烦的问题
1、组合模式使用普遍:jquery就是用的组合模式,组合模式使用非常普遍
2、组合模式优点:a、支持传参 b、 解决内存浪费(共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式)
3、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式
二、javascript创建对象的方法--组合模式
构造函数和原型组合模式
这是目前最为常用的创建对象的方式。
这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。结果是,所有函数都只创建一次,而每个对象都具有自己的对象属性实例。
此外,组合模式还支持向构造函数传递参数,可谓是集两家之所长。
在所接触的JS库中,jQuery类型的封装就是使用组合模式来实例的!!!
三、代码
1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="utf-8"> 5 <title>课堂演示</title> 6 </head> 7 <body> 8 <script> 9 function Monster(){} 10 Monster.prototype={ 11 constructor: Monster, 12 name:'喽啰', 13 job:['巡山','打更'], 14 run:function() {return this.name+'的工作是'+this.job } 15 } 16 //构造函数和原型组合模式 17 function Monster(name,arr){//非共用 18 constructor: Monster, 19 this.name=name 20 this.job=arr 21 } 22 Monster.prototype={//共用 23 run:function() {return this.name+'的工作是'+this.job } 24 } 25 var monsterI=new Monster('小旋风',['巡山','打更','砍柴']) 26 var monsterII=new Monster('小钻风',['巡山','打更','挑水']) 27 alert(monsterI.run()) 28 alert(monsterII.run()) 29 </script> 30 </body> 31 </html>
1、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式
2、this关键字:因为传参,所以this关键字
3、原型中可以调用对象的非共用属性:原型中可以调用对象的非共用属性,用this关键字
4、函数的定义和使用还是和之前一样
5、原型方式:对象名.prototype={}
6、构造器方式:constructor: Monster,
7、对比:注意组合模式和原型模式的对比
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672