<script type="text/javascript">
/*
* 函数:
* * 如何定义函数:
* * 第一种普通方式:function 函数名(参数n){函数体}
* * 第二种构造函数方式:var 变量名 = new Function(参数n,函数体);
* * 第三种直接量方式:var 变量名 = function(参数n){函数体}
*/
// function fn(){
// alert("xxx");
// }
// var fn = new Function('a','b','return a+b;');
// alert(fn(1,2)); //output 3
// var fn = function(){
// alet("xxx");
// }
//function fn(){}
/*
* 特殊函数:
* * 匿名函数
* * 使用直接量方式定义函数时,使用到
* * 匿名回调函数:可以将匿名函数作为参数传递给其他函数。这样,接收方函数就能利用所传递的函数来完成某些事情。
* * 自调函数:可以定义某个匿名函数来执行某些一次性任务。
*/
//function(){}
/*
* * 函数one和two,称之为叫做回调函数
* * 什么叫做回调函数?
* * 将一个函数作为另一个函数的参数传递,而作为参数的函数就叫做回调函数
* * 什么叫做匿名回调函数?
* * 将一个匿名函数作为另一个函数的参数传递,而作为参数的匿名函数就叫做匿名回调函数
*/
// var one = function(){return 1;}
// var two = function(){return 2;}
//接收的两个参数a,b都是函数
// function fn(a,b){
// return a() + b();
// }
//alert(fn(one,two)); //output 3
//将以上写法改写成以下形式
//匿名回调函数
//alert(fn(function(){return 1;},function(){return 2;})); //output 3
/*
* 什么是一次性任务?
* * 页面载入,初始化工作(不严格)
* * 定义即调用(不复用)(不严格)
* * 自调函数
*/
// function aaa(){}
// aaa();
/*
* 自调函数:
* * 第一个小括号:定义函数(普通函数和匿名函数)
* * 第二个小括号:调用函数(可以传参)
*/
// (
// function(){
// alert("xxx");
// }
// )();
// (
// function(str){
// alert(str+" xxx");
// }
// )("hello");
/*
* 在一个函数体内,又定义了一个函数:内部函数,又叫做私有函数(java的内部类)
* * 保证了私有性 —— 在具体的函数内可以使用,在具体的函数外不能使用
*/
// function fn(){
// var a = "a";
//
// function n(){
// return a;
// }
//
// return n();
// }
//
// alert(fn()); //output a
// alert(n()); //output a
/*
* 返回函数的函数:
* * 就是内部函数的一种特殊用法
* * 在不多定义另外的函数时,可以执行两个逻辑体(外部的函数不能具有真实的返回值)
*/
function fn(){
var a = "a";
return function(){
return a;
}
}
//把return后面的内容,当作字符串
fn(); //output function(){return a;}
//fn() = function(){return a;}
//var fun = fn();
//var fun = function(){return a;}
//alert(fun()); //output a
alert(fn()()); //output a
</script>
javascript几种特殊的函数
最新推荐文章于 2024-01-24 18:01:42 发布