Javascript知识点<二>

定义函数方式:

1 一般方式

function fn(){

return "a";

}

2 构造函数法

var fn = new Function();

3 直接量方式

var fn = function(){

return "a";

}



<script type="text/javascript">

  /*

  * 1 匿名函数:没有名的函数

  * * 作用:

  * * (匿名回调函数)可以将匿名函数作为参数传递给其他函数。这样,接收方函数就能利用所传递的函数来完成某些事情。

  * * (自调函数)可以定义某个匿名函数来执行某些一次性任务。

  */

// function(){}

/*

* 函数one和two就是回调函数

* * 将一个函数作为参数传递给另一个函数,而作为参数的函数就叫做回调函数

*/

// var one = function(){return 1;}

// var two = function(){return 2;}

// function fn(a,b){

// return a() + b();

// }

// alert(fn(one,two)); //output 3

//将以上内容进行改写:

/*

* 以下两个函数称之为匿名回调函数

* * 将匿名函数作为参数传递给另一个函数,而作为参数的匿名函数就叫做匿名回调函数

*/

// alert(fn(function(){return 1;},function(){return 2;})); //output 3

/*

* 一次性任务:

* * 做页面初始化加载的函数(不严格)

* * 定义即调用的函数(不严格)

* * 自调函数

* * 第一个小括号:定义函数(普通函数和匿名函数,一定使用匿名函数)

* * 第二个小括号:调用函数(而且传递指定参数)

*/

// function fn(){}

// fn();

// (

// function(){

// alert("javascript");

// }

// )();

// (

// function(str){

// alert(str+" javascript");

// }

// )("hello");

/*

* 特殊函数对于我们来讲(意义):

* * 这些特殊函数不是必要性的

* * 特殊函数的性能等一定比常规方式更好

* * 将这些特殊函数称之为高级用法

*/

/*

* 在一个函数体内,定义了另一个函数:

* * 函数n()就叫做内部(私有)函数 - java中的内部类

* * 意义:保证了私有性 - 只能在当前范围内使用,在外部无法使用

* * 内部函数最后还是要调用一下(只定义不调用的函数没意义)

*/

// function fn(){

// var a = "a";

//

// function n(){

// var b = "b";

//

// return b;

// }

//

// return n(); //函数fn()的返回值是:函数n()的调用 - 返回的就是局部变量b的值

// }

//

// alert(fn()); //output b

// alert(n()); //output undefind

/*

* 返回函数的函数:其实就是内部(私有)函数的一种特殊用法

* * 可以实现在只定义一个函数时,调用到两个逻辑体

* * 实现可以在一个函数域中,使用另一个函数域的变量

* * 外部的函数不能具有真正的返回值内容

*/

function fn(){

//1 第一步处理

var a = "a";

return function(){

//2 进一步处理

return a;

}

}

//alert(fn()); //output function(){return a;}

//var fun = fn();

//var fun = function(){return a;}

//alert(fun()); //output a

alert(fn()()); //output a

  </script>


你可能感兴趣的:(Javascript知识点<二>)