Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 似乎无法执行传递给变量的函数_Javascript_Jquery_Ecmascript 6_Semantic Ui_Aurelia - Fatal编程技术网

Javascript 似乎无法执行传递给变量的函数

Javascript 似乎无法执行传递给变量的函数,javascript,jquery,ecmascript-6,semantic-ui,aurelia,Javascript,Jquery,Ecmascript 6,Semantic Ui,Aurelia,这是我正在尝试运行的jQuery插件。更具体地说,它是语义用户界面的一个小部件,我正试图在传输的ES 6/7环境中的Aurelia中利用它 这项工作: return $(this.element)[this.methodTrigger](); 但这并不是: let trigger = $(this.element)[this.methodTrigger]; return trigger(); 其中,$(…)是一个jQuery选择器,this.methodTrigger只是一个字符串,类似于加

这是我正在尝试运行的jQuery插件。更具体地说,它是语义用户界面的一个小部件,我正试图在传输的ES 6/7环境中的Aurelia中利用它

这项工作:

return $(this.element)[this.methodTrigger]();
但这并不是:

let trigger = $(this.element)[this.methodTrigger];
return trigger();
其中,
$(…)
是一个jQuery选择器,
this.methodTrigger
只是一个字符串,类似于加载语义UI评级小部件的“评级”

我做错什么了吗?这是ES6中不允许的吗?它是否正在向下传输到普通JS?我是不是脑死了,没有看到什么明显的问题


就语法而言,它看起来应该可以工作…

该值期望
this
引用jQuery对象,但在调用函数之前将其分配给变量,则会丢失调用上下文。这意味着调用它就像调用一个全局函数一样。您可以使用手动设置上下文


你说它“不工作”是什么意思?我猜
this
不正确。调用
trigger()
将全局作用域或
未定义的
用作
。第一部分工作正常,并在屏幕上正确显示小部件。第二部分什么也不做,没有小部件,但控制台上没有错误。打开控制台(点击F12)。你看到错误了吗?我猜你会看到类似于
无法读取未定义的属性“prop”的东西。第二部分的执行就像什么都没发生一样。这就成功了:)。需要对我的
这个
上下文更加警惕。
let $this = $(this.element);
let trigger = $this[this.methodTrigger].bind($this);