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]不是函数
任何人都可以帮助我解决该问题吗?
答案 0 :(得分:0)
您应该更改函数调用并传递this
。更改此行,它将解决:
Caman.call(this, tmp_img, function (){
/* Your callback function body */
});
此处this
表示filter_effect
功能。当您想在函数调用中更改this
对象时,必须使用.apply()或.call()进行更改。
答案 1 :(得分:-1)
您必须澄清“ this”参考值,它必须是引用一个javascript对象,该对象的effect_name属性声明为函数,使用浏览器的调试器对其值进行仔细检查