学习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 相关文章推荐
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
JavaScript的String字符串对象常用操作总结
May 26 Javascript
jquery之别踩白块游戏的简单实现
Jul 25 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
Jquery表单验证失败后不提交的解决方法
Oct 18 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
原生JavaScript实现Ajax异步请求
Nov 19 Javascript
webpack构建换肤功能的思路详解
Nov 27 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桌面中心(三) 修改数据库
2007/03/11 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
zookeeper python接口实例详解
2018/01/18 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
高中军训广播稿
2014/01/14 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
工作时间证明
2015/06/15 职场文书
创业计划书之酒吧
2019/12/02 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏