一、函数传参:也就是函数传递参数。
参数:指的是,JS的数据类型。
数据类型有:Number,string,Boolean,function、object、undefined。———— 这些构成了我们传递的一个参数
注: 函数传参, 传什么就会用一个变量接收什么,而且是一个一一对应的关系。
// Number
fn1(100,'px'); // 要想传递多个参数,中间用逗号隔开
function fn1(a,b){
alert(a+b);
}; // 弹出的是 100px
// string
fn2('miaov');
function fn2(a){
a.charAt(3);
}; // 弹出 o
// function (包括了匿名函数和有名函数)
1、匿名函数:
fn3( function (){ alert(1); } );
function fn3(fn){ // 添加一个叫fn的形参,fn就代表的是function (){ alert(1); }
// fn(); // 想要弹出里面的1,函数名加括号。 就弹出1
};
// 函数作为参数进来也是可以继续传递参数的
fn3( function (a){ alert(a); } );
function fn3(fn){
// fn(100); // 100
};
2、有名函数:
function fn4(){ // 把fn4这个函数传递到fn5中
alert(4);
};
fn5( fn4 ); // 传递有名函数,直接写fn4,不要加()
function fn5(fn){
fn(); // 弹出的是 4
};
// object
fn6(window.document);
function fn6(w,b){
w.onload = function (){ d.body.innerHTML = 123; };
};
二、添加回调函数
在函数传参中,有时会添加一个回调函数:
fn(oDiv,'left') // 很简单的传递了两个参数,注意这里没有加回调函数
fn(oDiv,'left', function (){ alert(1); } ) // 最后添加的这个函数就称作为回调函数
function fn(obj,attr,endFn) { // 这里的endFn就代表一个回调函数
// 添加回调函数后,要做一个这样的判断
// 如果参数中有endFn,就可以执行endFn(),也就是说可以执行回调函数里面的代码 ( 两种输写方法 )
/*
if(endFn){
endFn();
}
*/
endFn && endFn();
};