学习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 表单下所有元素的隐藏
Jul 25 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
JS函数节流和函数防抖问题分析
Dec 18 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
Dec 22 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
May 23 Javascript
JS将网址url转化为JSON格式的方法
Jul 02 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
layUI实现列表查询功能
Jul 27 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 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 flock 文件锁详细介绍
2012/12/29 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php微信公众号开发模式详解
2016/11/28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
List the UTC Time on a Computer
2007/06/11 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python中bisect模块用法实例
2014/09/25 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
销售总监岗位职责
2014/01/04 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
解析MySQL索引的作用
2022/03/03 MySQL
nginx访问报403错误的几种情况详解
2022/07/23 Servers