function average(x,y) {
return (x+y)/2;
}
var z = average(1,3);
alert(z);
var z = function(x,y) {
return (x+y)/2;
} (1,3);
alert(z);
这很自然得引出了我们下面的一节课[b]函数作为值[/b]。
[h1]第二课 - 函数作为值[/h1]
事实上,我们一般在JavaScript中声明函数的方式可以看作是一个简化了的语法(也就是[i]语法糖[/i],[i]syntactic sugar[/i])。
例:
下面两个表达式其实完全一样。所以左边的表达式仅仅是右边的简写。 function average(x,y) {
return (x+y)/2;
}
alert( average(1,3) );
var average = function(x,y) {
return (x+y)/2;
}
alert( average(1,3) );
从这里可以得出一个结论,函数是一个值就像字符串、数字或数组一样。这还出现几个问题:
var applyFun = function (f,x,y) { return f(x,y); };
var add = function(x,y) {
return x+y;
};
alert( applyFun(add,3,4) ); // 7
[h1]第三课 - 两种方式调用函数[/h1]在JavaScript中,有两种调用函数的方式。一般的方式是把参数放在括号中,如alert(42)。另一种方式是同时把函数和参数都放在括号中,如(alert)(42)。
例:
alert(42);
(alert) (42);
(function(x) { alert(x-13); }) (55);
[b]为什么函数两边的括号很重要:[/b]如果你写了括号,那么在括号中的代码就会被先计算。在计算之后,括号所在的地方就会有一个值。这个值可能是一个字符串、一个数字或一个函数。
[h1]第四课 - “短路”条件调用[/h1]现在我们将学习如何使用“短路”条件调用。使用这个方法可以缩短源代码同时代码也变得更加可读。
例:
这个语法并不是用在左表达式上,而是用在右表达式上。
var f = false; var t = true;var z; if(f) z = 4; else if(t) z = 2; alert(z);
var f = false; var t = true; var z = (f && 4) || (t && 2); alert(z);[h1]第五课 - 它好在哪里[/h1]OK,现在我们已经学习了一些函数式JavaScript的内容。那么它好在哪里?函数式JavaScript编程之所以很重要有三条主要的理由: [list=1] [*]它有助于写出模块化和可服用的代码。 [/*][*]它对事件处理程序非常有效。 [/*][*]它很有趣![/*][/list]在下面的篇幅中,我会给出更多关于前两条理由的信息 [h2]1. 模块化和可复用的代码[/h2]现在你已经知道如何将函数作为值使用,那么你也应该试试!一个很好的例子是数组内建的sort方法。预定义的sort()把所有的对象转换成字符串并把他们按照词语的顺序排序。但如果我们有用户自定义的对象或者数字那么它就不是很有用了。于是这个函数可以让你给他一个进行比较的函数作为参数,如sort(compareFunction)。这个方法让我们甚至不用接触实际的sort方法。 例:
var myarray = new Array(6,7,9,1,-1);
var sortAsc = function(x,y) { return x-y; };
var sortDesc = function(x,y) { return y-x; };
myarray.sort(sortDesc);
alert(myarray);
myarray.sort(sortAsc);
alert(myarray);
[h2]2. 事件处理程序[/h2]对事件处理程序使用函数式编程也许是最直观的函数作为值得应用了。既然这样我们马上就演示一个例子。
简单的例子:;ie
现在有一个Button类,带一个自定义的onclick行为。
function Button(clickFunction) {
this.button = document.createElement("button");
this.button.appendChild(document.createTextNode("Press me!"));
this.button.onclick = clickFunction;
}
var bt = new Button(function() { alert("42"); });
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有