JavaScript类中保存并调用外部函数的方法

作者:闭包旅人时间:2026-10-22 03:56:44浏览:364

本文介绍在JavaScript类中保存外部函数引用的方法。通过判断arguments长度,区分无参函数与带参函数,构建函数调用字符串并保存至类变量。使用时通过eval或类似机制执行该字符串,实现动态调用外部函数的功能,适用于需要灵活绑定回调的场景。

JavaScript类中保存外部函数名及带参调用的实现技巧

例如,我们需要在一个类中定义一个方法,该方法能够接收另一个函数并将其保存到类的变量中。当后续需要时,可以通过访问这个类变量来重新获取并执行该函数。


通常情况下,当我们创建一个类的实例时,


例如:var temp=new TopnetTree();


如果我们尝试通过设置属性的方式来传入一个函数,会发现直接赋值得到的是函数的执行结果或内容,而不是函数本身的引用或名称,这通常不是我们想要的行为。


例如temp.fileAction=fnTest; //fnTest是一个函数



因此,我编写了一个特定的方法来实现这一功能。


该方法利用arguments对象来判断传入内容的类型和数量:


具体实现的功能逻辑如下:


如果传入的参数数量为0,则不执行任何操作。


如果只传入了一个参数,则将其视为一个无参数的函数名。


如果传入了多个参数,则第一个参数被视为函数名,后续的参数作为该函数的调用参数。



具体代码实现如下:

1 TopnetTree.prototype.setFileAction=function(){
2 var fnName,fnArgs="";
3 if(arguments.length==0){
4 return 0;
5 }else if(arguments.length==1){
6 fnName=arguments[0];
7 }else{
8 fnName=arguments[0];
9 for(var i=1;i<arguments.length;i++){
10 fnArgs+=","+arguments[i];
11 }
12 fnArgs=fnArgs.replace(",","");
13 }
14
15 this.fileAction=fnName+"("+fnArgs+")";
16 }
作者最新文章