这是我试图运行的jQuery插件。更具体地说,它是Semantic Ui的小部件之一,我试图在Aurelia中在ES 6/7环境中利用这个小部件。
这有效:
return $(this.element)[this.methodTrigger]();
但这不是:
let trigger = $(this.element)[this.methodTrigger];
return trigger();
其中$(...)
是jQuery选择器而this.methodTrigger
只是一个字符串,例如" rating"加载语义UI评级小部件
我做错了吗?这是ES6中不允许的吗?它是否错误地转化为普通JS?我脑子里死了,没有看到明显错误的东西吗?
语法明智它看起来应该有用......
答案 0 :(得分:2)
该值期望this
引用jQuery对象,但是通过在调用它之前将该函数分配给变量,您将失去调用上下文。这意味着它被称为全局功能。您可以使用.bind
let $this = $(this.element);
let trigger = $this[this.methodTrigger].bind($this);