学习YUI.Ext 第二天


Posted in Javascript onMarch 10, 2007

遇到一些JS的语法上的问题,没有理解透,恶补基本功!

 

匿名函数 An anonymous function

没有名字的就叫作“匿名函数”,像这个

function(x,y){return x+y}

没有名字当然不能直接调用,也无法调用;最多能只能把它赋值或闭包处理(闭包是什么下面再讲),如:

var sum =function(x,y){return x+y};

alert(sum(1,2));

这时候,与传统写法是等价的 function sum(x,y){return x+y}.这样的写法让人感觉更OOP,因为sum变量就包含了function...这个函数体;

还可以闭包的方式调用该函数:

(functioin(x,y){return x+y})(1,2) //返回值3

代码很简洁。注意括号的使用,形式为(exp)()。这种用法可以称作 闭包closure。
后面括号的是参数,把这些参数放进fn里面立即计算,得出一个值 3。这实际上是一个表达式的运算。没想到fn函数体也可以放进去参与运算^_^(Using function as an expression)!(基本功:表达式Expression,其含义是通过计算后,始终会返回一个值,无论这个表达式有多长)

fn还可以以参数形式传递(passing function as argument to other functions)

var main_fn = function(fn,x,y){return fn(x,y)}

var sum = function (x,y){
   return x+y;
}

alert(main_fn(sum,1,2)) // result:3

总结一下(by an IBM Engineer's article, refer to IBM website,最好用心记一记)

Functions need not have names all the time.

Functions can be assigned to variables like other values.

A function expression can be written and enclosed in parenetheses for application later.

Functions can be passed as arguments to oher funcitons.

再谈闭包,闭包的作用是形成一个定义域,举一个很白痴的例子 1+(2+3),括号部分优先运算,或者换个说法,括号里面的归为一个范围,这个范围我不理你做什么事情都是你里面做的事情,与括号外界无关(好像是废话,--我是这样想的,就是这样写的@#@),程序上的理解也是这样。js有函数定义域function scope,因此,当使用this指向一个对象出现问题的时候,可考虑使用闭包。具体例子在:http://www.svendtofte.com/code/practical_functional_js/

Javascript 相关文章推荐
jQuery 全选效果实现代码
Mar 23 Javascript
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 Javascript
基于javascript实现简单计算器功能
Jan 03 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
详细分析Node.js 模块系统
Jun 28 Javascript
学习YUI.Ext基础第一天
Mar 10 #Javascript
JavaScript触发器详解
Mar 10 #Javascript
又一个图片自动缩小的JS代码
Mar 10 #Javascript
基础的prototype.js常用函数及其用法
Mar 10 #Javascript
优秀js开源框架-jQuery使用手册(1)
Mar 10 #Javascript
用JavaScript实现仿Windows关机效果
Mar 10 #Javascript
Javascript中的Split使用方法与技巧
Mar 09 #Javascript
You might like
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
用Python编写web API的教程
2015/04/30 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
中专生自荐信
2013/10/12 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
求职信模板怎么做
2014/01/26 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
大班亲子运动会方案
2014/06/10 职场文书
医学生自荐信范文
2015/03/05 职场文书
实习单位推荐信
2015/03/27 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
人民币使用说明书
2019/04/17 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python