赞
踩
- function fun() {
- console.log("函数 fun 被调用");
- }
-
- /**
- * 简单函数形式,该方法传入函数名即可
- */
- function callModelFun(functionName) {
- //根据函数名得到函数类型
- let func = eval(functionName);
- //创建函数对象,并调用
- new func();
- }
- callModelFun("fun");
- function User () {
- this.sayHello = function () {
- console.log("User 对象的 sayHello 方法被调用");
- }
- }
-
- /**
- * 构造函数的形式 通过构造函数名和方法名实现方法调用
- * @param objName
- * @param methodName
- */
- function callObjectMethod(objName, methodName) {
- const func = eval(objName);
- const f = new func();
- f[methodName]();
- }
-
- callObjectMethod("User", "sayHello");
- let Person = {
- speak: function () {
- console.log("speak方法调用");
- // return "hello hello";
- }
- }
-
- // callObjectMethod("Person", "speak"); // 不可行
-
- /**
- * 对象字面量的形式 通过对象名和方法名实现方法调用
- * @param objName
- * @param methodName
- */
- function callObjectMethod2(objName, methodName) {
- // 实现动态调用objName 对象的 methodName 方法
- const func = eval(objName);
- func[methodName]();
- }
-
- callObjectMethod2("Person", "speak");
以上是三种情况的处理方式。核心用到了 js 的eval 函数。
eval()函数是一种接受字符串作为参数,并且可以将接受的字符串转换成js表达式并且立即执行该表达式。将字符串转成js指令执行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。