javascript-函数

什么是函数

函数是一组可以随时随地地运行的语句。

函数是ECMAScript的核心。

函数是由这样的方式进行声明的:关键字function、函数名、一组参数,以及置于括号中待执行的代码。

(以上来自己ECMAScript)

匿名函数

匿名函数在javascript里非常常用,也是非常有用的。

function(a,b,c){

    return (a+b+c);
}


使用方法

var total=function(a,b,c){

    return(a+b+c);
}

alert(total(1,2,3));


还要以这样被使用

/*other one*/

var total=function(a,b,c){

    return(a+b+c+);

}(1,2,3);

alert(z);

以上两种方法结果相同。

第二种方法比较其实就是函数做为表达式的一种使用方法,是javascript函数调用的一种方式。

alert("你好!");

(alert)("你好!");

这样就比较好理解了,alert是javascript最常见的函数之一了,他本身是一个函数所以,可以用函数做为表达式方法进行调用。

函数作为参数

这个不是什么新鲜的东西,但是非常有用

var containter=function(func,a,b,c){

    return func(a,b,c);
}

var total=function(a,b,c){

    return(a+b+c);
}

alert(containter(total,1,2,3));

函数式概念

javascript应用至今,最重要的应该是用它来做Web app,所以很多人对其强壮性提出质疑,但是同时很多人也在努力的将javascript套用各种编程风格使其更通用、更强壮、更容易维护。

而函数式的概念相对而言比较重要

  • 函数不总是需要名称。
  • 函数可以像其他值一样分配给变量。
  • 函数表达式可以编写并放在括号中,留待以后应用。
  • 函数可以做为参数传递给其他函数

这一概念总结来自IBM

这里再引用他的一个例子说明一下

生成动态HTML的能用方式:

Array.prototype.fold=function(templateFn) {
  var len=this.length;

  var str=' ';

  for (var i=0 ; i<len ; i++)

	str+=templateFn(this[i]);

  return str;
}

function templateInstance(element) {

  return ... HTML generation code ...

}

document.write(arr.fold(templateInstance));

这一方法巧妙的对Array类型的prototype的属性进行新的定义。用的就是匿名函数的方法。并且将函数做为参数进行处理。

我们可以看到这样可以使代码更加的灵活,更容易阅读。

到这里,其实javascript最基础的东西已经讲完,以后的文章里,会讲一些javascript面向对象的方法以及DOM操作。

面向对象将对照mootools的源码进行讲解,而DOM操作将对照jQuery的源码进行讲解。

此条目发表在 javascript, 实验室 分类目录,贴了 标签。将固定链接加入收藏夹。