使用JavaScript进行面向对象开发 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

function作为参数

JavaScript语言中有个特殊的语法,就是可以将一个function作为方法的参数进行传递,类似于C和C++中的函数指针,也类似于C#中的委托。

function test(a,b,fn){
    fn(a,b);
};
test(1,2,function(a,b){
    alert(a + b);    //3
});

上述例子中我们可以看出来,我们将一个方法作为参数传递给了test的fn,并且在test中被执行。如果我们写成test(1,2,3)就会报错了,因为fn(a,b)这种特殊的写法,要求fn必须是一个方法,所以我们往往在执行fn前加上一个判断

function test(a,b,fn){
    if(typeof(fn) == "function"){
        fn(a,b);
    }
}

这个重要的特征将作为实现事件的主要手段