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 }作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
