函数的参数可以时字符串,数组等基础类型,还可以是函数,定义函数时形参写法类似,使用函数时传入实参为函数即可test(test1())。
<script type="text/javascript">
// 1.无参数函数
function test1(){
alert('没有参数');
}
// 2.有参数函数
function test2(str){
alert(str);
}
// 参数为(有参或无参)函数的函数
function test(fn){
// var a = fn;传入的函数有返回值时
fn; // 传入的函数无返回值时
// 在传入参数的时候,自动识别是函数,按函数方法执行
}
// 调用函数
window.onload = function(){
test(test1()); // 参数为 无参函数
test(test2('我是参数')); // 参数为 含参函数
// 参数传入函数的时候加 () ;
}
</script>
另外不可使用typeof()来区分传入的参数是函数还是其他类型,从而执行不同的操作方式
/**
* 基础知识
*
* typeof() 函数:
* 返回数据的数据类型
* 例如:
* typeof(1); 返回:number
* typeof('1'); 返回:string
* typeof(函数名); 返回:function [函数名后面不加括号,是Date而不是Date(),否则返回undefined]
*/
function test1(){
alert('没有参数');
}
function hehe(str){
if (typeof(str) === 'function') {
str; // 执行函数操作
}else{
alert(str); // 执行字符串操作
}
}
window.onload = function(){
hehe(test1()); // 参数为 无参函数
// hehe('1111111')
}
/**
* 不可行:
* (1) typeof(str) 返回值为undefined;
* (2) typeof(str) str是函数,会执行一次
*/
实现方法待更新……
网友评论