学习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 相关文章推荐
动态改变div的z-index属性的简单实例
Aug 08 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
json对象与数组以及转换成js对象的简单实现方法
Jun 24 Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
解决Vue打包后访问图片/图标不显示的问题
Jul 25 Javascript
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
学习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程序的多种方法介绍
2014/11/06 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
JS+CSS实现动态时钟
2021/02/19 Javascript
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Django返回HTML文件的实现方法
2020/09/17 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
工会主席岗位责任制
2014/02/11 职场文书