我有一个无法正常工作的JavaScript函数

时间:2018-08-19 06:20:30

标签: javascript jquery

function filter_effect(effect_name){
    var tmp_img = document.createElement("IMG");
    tmp_img.src = get_cropped_image()
    tmp_img.style.display = "none"
    Caman(tmp_img, function (){
      this[effect_name](); 
          this.render(function () {
              change_picture(this.canvas.toDataURL("image/jpeg"))
      });
    });
}

这是我的代码,当我运行它时,出现此错误

  

未捕获的TypeError:此[effect_name]不是函数

任何人都可以帮助我解决该问题吗?

2 个答案:

答案 0 :(得分:0)

您应该更改函数调用并传递this。更改此行,它将解决:

Caman.call(this, tmp_img, function (){
   /* Your callback function body */
});

此处this表示filter_effect功能。当您想在函数调用中更改this对象时,必须使用.apply()或.call()进行更改。

Here is a reference for this post.

答案 1 :(得分:-1)

您必须澄清“ this”参考值,它必须是引用一个javascript对象,该对象的effect_name属性声明为函数,使用浏览器的调试器对其值进行仔细检查