javascript - 有什么方法可以使用点语法按名称调用方法吗?

标签 javascript

是否可以使用“点语法”而不使用“eval”(邪恶)来做到这一点? (我知道我可以使用 this[methodtocall]())

    var myObj = {

      method1 : function(){
         return 1;
      },
      method2 : function(){
         return 1;
      },
      callMethod : function(methodtocall){
           this.+methodtocall+()
      },
      init : function(){
          this.callMethod("method1");
      }
   }
   myObj.init();

最佳答案

不,除了 eval 或等价物,点符号成员运算符是不可能的。

如果要保持语法一致,请始终使用成员运算符的方括号表示法。

  callMethod : function(methodtocall){
       this[methodtocall]()
  },
  init : function(){
      this["callMethod"]("method1");
  }

关于javascript - 有什么方法可以使用点语法按名称调用方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129642/

相关文章:

javascript - jQuery 删除附加元素

javascript - 如何编写一个函数来检查输入是否实际上是整数? (Javascript)

javascript - 在没有 node.js 的情况下独立使用 socket.io

javascript - 用于验证具有多个条件的字符串的正则表达式模式

javascript - 如何在 Jade 中分配变量?

javascript - indexOf 如何返回这个例子的位置,结果不应该是-1吗?

JavaScript slider

javascript递归null TypeError在while循环的主体中,预计不会被执行

Javascript多数组操作

javascript - Android webview如何使用webkit?