【殿堂之路】P68页

原文引用:“我有一个对象,我想根据不同的情况对它进行一系列的操作,但是,有时需要所有的操作,有时又需要一部分的操作。那么,这个技巧,就能保证代码的高度重用性和简洁性”

 1 //新建队列
 2 var funcAry:Array = new Array();
 3
 4 //将需要的操作步骤加入队列中
 5 funcAry.push(aFunc);
 6 funcAry.push(bFunc);
 7 funcAry.push(cFunc);
 8
 9 //创建一个对象,在程序后面为它动态添加属性a,b,cFuncExected;
10 var originObject:Object = new Object();
11
12 //funcAry[i]是遍历funcAry里的元素,每一次遍历都把对象originObject传到函数abcFunc
13 //当中,在函数中为对象originObject动态添加属性
14
15 for (var i:Number = 0; i<funcAry.length; i++)
16 {
17     funcAry[i](originObject);
18 }
19
20 //在上一个循环中,已经为originObject添加了属性,在这个循环里,把originObject的
21 //属性逐一输出
22 for (var j in originObject)
23 {
24     //j是根据属性名逐一输出,originObject[j]是属性名对应的属性值
25     trace(j + ":" +originObject[j] );
26 }
27
28 //定义a,b,cFunc三个函数,e作为参数,接受类型为Object的对象
29 function aFunc(e:Object)
30 {
31     trace("aFunc");
32     //动态添加属性aFuncExected,其值为:属性值1,下面的同理
33     e.aFuncExected = "属性值1";
34 }
35
36 function bFunc(e:Object)
37 {
38     trace("bFunc");
39     e.bFuncExected = "属性值2";
40
41 }
42
43 function cFunc(e:Object)
44 {
45     trace("cFunc");
46     e.cFuncExected = "属性值3";
47
48 }
49
50
51 /*输出如下:
52 aFunc
53 bFunc
54 cFunc
55 aFuncExected:属性值1
56 cFuncExected:属性值3
57 bFuncExected:属性值2
58 */

我的心得:

我终于一句一句地把代码看懂了。为了理解这里面的每一句代码的意思,我终于改掉之前只看代码,不动手的坏习惯。这次的突破,让自己彻底明白代码的意思,为自己感到开心。同时对遍历数组,for...in的用法有了更深刻的理解。

转载于:https://www.cnblogs.com/louisluo77/archive/2012/06/19/2555356.html

【学习笔记】函数高级使用技巧:建立函数队列相关推荐

  1. RabbitMQ学习笔记(高级篇)

    RabbitMQ学习笔记(高级篇) 文章目录 RabbitMQ学习笔记(高级篇) RabbitMQ的高级特性 消息的可靠投递 生产者确认 -- confirm确认模式 生产者确认 -- return确 ...

  2. matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色

    一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~ 参考书籍 <matlab 程 ...

  3. Learn Git Branching 学习笔记(高级话题篇)

    目录 一.高级话题篇 1.多分支rebase 2.选择父提交记录 3.纠缠不清的分支 Git的一些技术.技巧与贴士集合在上一篇文章中 Learn Git Branching 学习笔记(Git 技术.技 ...

  4. 编译原理学习笔记2——高级程序设计语言概述

    编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...

  5. 20171220-python学习笔记--函数类型

    20171220-python学习笔记--函数类型 备注: #位置参数 #传入两个参数 def power(x, n):s = 1while n > 0:n = n - 1s = s * xre ...

  6. JavaScript学习笔记——函数 Part4:向函数传递函数、从函数返回函数(函数是一等公民)

    要点 函数是值,这个值就是函数引用 函数是一等公民:函数引用是一等值 可将函数引用赋给变量.含在数据结构(如对象)中.传递给其他函数或从其他函数返回 函数是一等公民 不要再认为函数是特殊的,有别于Ja ...

  7. Powershell学习笔记——函数和函数库

    前段时间公司封闭开发,就在封闭的前一天感冒发烧,为了封闭,一顿猛药下去,烧是退了,却在扁桃附近爆发出来--扁桃发炎加溃疡,搞了十多天才好啊,天天喝稀饭啊--所以请大家原谅这么久没有续上学习笔记.顺便: ...

  8. Excel学习笔记-函数(IF、AND、OR、Countif、Countifs)

    目录: 一.认识Excel公式 1.运算符 2.公式中的比较判断 3.运算符优先级 4.单元格引用 二.认识函数 1.如何使用函数 2.学习以下函数 3.利用定位工具选择输入公式的位置 三.使用IF函 ...

  9. MySQL学习笔记-03高级查询、多表联合查询、聚合函数、子查询、视图、存储过程、权限、

    关于作者 金山老师:从事Java.大数据.Python职业化培训6年,项目管理.软件开发14年.欢迎添加我的微信号[jshand],最近建了一些微信交流群,扫描下方二维码添加公众号,回复:进群 文章目 ...

  10. Bash Cookbook 学习笔记 【高级】

    Read Me 本文是以英文版<bash cookbook> 为基础整理的笔记,力求脱水 [高级]部分,涉及脚本安全.bash定制.参数设定等高阶内容 本系列其他两篇,与之互为参考 [基础 ...

最新文章

  1. linux系统回收站功能的实现
  2. Java虚拟机JVM简单理解
  3. Linux网络编程 | 信号 :信号函数、信号集、统一事件源 、网络编程相关信号
  4. 浅析分布式数据库中间件DDM
  5. 关于 Android 和 iOS 流畅度的一切
  6. ios::sync_with_stdio(false)的作用
  7. 8tupian图片加密平台源码 v3.5
  8. 前端:JS/38/canvas状态的保存和恢复(canvas常用状态大全),canvas画布中图像的变形
  9. 【Qt教程】3.1 - Qt5 event事件、Label控件的鼠标事件捕获
  10. 多个帐户都用root 来登录 怎么看另一个用户使用的那些命令
  11. HDU 4911 http://acm.hdu.edu.cn/showproblem.php?pid=4911(线段树求逆序对)
  12. mysql privileges
  13. 转: 借助GitHub托管你的项目代码
  14. Linux内存管理:Linux 可加载内核模块剖析:2.6 内核透视图
  15. ubuntu系统设置右键新建文本文档
  16. 资源 | 一网打尽成语歇后语,GitHub新华字典数据库
  17. Android旅游自助项目之订票系统订票功能实现
  18. 纯css写滚动的弹幕特效
  19. UGeek大咖说 | 精彩回顾:京东商城可观测性体系的落地与实践
  20. 表格-table 样式

热门文章

  1. [转]【分享】浅谈 JavaScript 在多交互站点中的工作方式
  2. 分区工具parted的详解及常用分区使用方法
  3. eclipse无法启动的各种解决方法
  4. 5 张图带你搞懂容器网络的工作原理
  5. mybatis-plus 官方发布神器,一个依赖轻松搞定数据权限,再也不用自己实现了!...
  6. 再见!LayUI !
  7. 女友的一个建议,让26岁程序员做了个价值 10 亿美元的 App
  8. 你见过哪些操蛋的代码?切勿模仿! 否则后果自负
  9. 为什么我不再推荐使用MVC框架?
  10. 西门子万人裁员背后的思考 :有车有房的中年人最好使唤