javascript天生就具备类似c#中的"委托"功能

时间:2022-04-23
本文章向大家介绍javascript天生就具备类似c#中的"委托"功能,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天读了Professional Javascript for Web Developers,才知道javascript天生就具备类似c#中的"委托"功能

<script type="text/javascript">

//定义一个加法函数

function fnAdd(){

    var iResult = 0;

    for(var i=0;i<arguments.length;i++){

        iResult += arguments[i];

    }

    return iResult;

}

//功能与上面的相同,只不过利用的Function对象

var fnAdd2 = new Function("var iResult = 0;    for(var i=0;i<arguments.length;i++){iResult += arguments[i];}return iResult;");

//注意写法,这里直接把函数fnAdd2当作参数传入fnAddDelegate,是不是跟c#中的委托有点类似

function fnAddDelegate(fnAdd2,iNum1,iNum2){

    return fnAdd2(iNum1,iNum2)

}

document.write(fnAdd(1,2,3) + "<br/>");

document.write(fnAdd2(10,20) + "<br/>");

document.write(fnAddDelegate(fnAdd2,4,5) + "<br/>");

</script>

运行结果:

6

30

9