javascript创建对象的方法--组合模式

一、总结

0、作用:解决原型模式对象独有属性创建麻烦的问题

1、组合模式使用普遍:jquery就是用的组合模式,组合模式使用非常普遍

2、组合模式优点:a、支持传参  b、 解决内存浪费(共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式)

3、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式

二、javascript创建对象的方法--组合模式

构造函数和原型组合模式

这是目前最为常用的创建对象的方式。

这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。结果是,所有函数都只创建一次,而每个对象都具有自己的对象属性实例。

此外,组合模式还支持向构造函数传递参数,可谓是集两家之所长。

在所接触的JS库中,jQuery类型的封装就是使用组合模式来实例的!!!

三、代码

 <!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script>
function Monster(){}
Monster.prototype={
constructor: Monster,
name:'喽啰',
job:['巡山','打更'],
run:function() {return this.name+'的工作是'+this.job }
}
//构造函数和原型组合模式
function Monster(name,arr){//非共用
constructor: Monster,
this.name=name
this.job=arr
}
Monster.prototype={//共用
run:function() {return this.name+'的工作是'+this.job }
}
var monsterI=new Monster('小旋风',['巡山','打更','砍柴'])
var monsterII=new Monster('小钻风',['巡山','打更','挑水'])
alert(monsterI.run())
alert(monsterII.run())
</script>
</body>
</html>

1、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式

2、this关键字:因为传参,所以this关键字

3、原型中可以调用对象的非共用属性:原型中可以调用对象的非共用属性,用this关键字

4、函数的定义和使用还是和之前一样

5、原型方式:对象名.prototype={}

6、构造器方式:constructor: Monster,

7、对比:注意组合模式和原型模式的对比

最新文章

  1. jdbc java数据库连接 2)jdbc接口核心的API
  2. ZeroMQ接口函数之 :zmq_close - 关闭ZMQ socket
  3. Java——文件选择框:JFileChooser
  4. ☀【JS】检测属性
  5. Java静态变量,常量,成员变量,局部变量
  6. MVC中的UrlHelper
  7. ipcs, ipcrm 命令
  8. C# 酒鬼买酒喝,瓶盖和空瓶子可以换新的酒
  9. BZOJ 1660: [Usaco2006 Nov]Bad Hair Day 乱发节( 单调栈 )
  10. JSP 初始化参数
  11. Github Page+Bmob实现简单动态功能
  12. ANT不完全总结,包含各种命令,ant例子等,转自:http://lavasoft.blog.51cto.com/62575/87306
  13. [dev] Go的协程切换问题
  14. 锋利的jQuery初学(5)
  15. 【转】python 退出程序的方式
  16. element组件知识点总结
  17. 浏览器与go语言的websocket通信
  18. Linux获得命令帮助(学习笔记五)
  19. 【java】 java设计模式(3):单例模式(Singleton)
  20. 20155323 2016-2017-2 《Java程序设计》第10周学习总结

热门文章

  1. 利用NSProxy解决NSTimer内存泄漏问题
  2. ruby redis的集群管理器
  3. Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
  4. libsvm 的使用
  5. avalon 作用域
  6. netflix feign概述
  7. c# 读取 excel文件内容,写入txt文档
  8. pigofzhou的巧克力棒
  9. SQL 查找存在某内容的存储过程
  10. 安装SQL2008后需要打开的端口为 1433,4630