js函数作为另一个函数的参数及typeof()函数

函数的参数可以时字符串,数组等基础类型,还可以是函数,定义函数时形参写法类似,使用函数时传入实参为函数即可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是函数,会执行一次
 */

实现方法待更新……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容