У меня есть такой код:this.set не является функцией
var ws2812 = {};
ws2812.set = function(r,g,b){
$.get("/light?r="+r+"&g="+g+"&b="+b, function(data) {
console.log("Light set to:"+"/light?r="+r+"&g="+g+"&b="+b);
})
};
ws2812.speech = function(word){
switch(word){
case "czerwone":
this.set(255,0,0);
break;
case "zielone":
this.set(0,255,0);
break;
case "niebieskie":
this.set(0,0,255);
break;
case "białe":
this.set(255,255,255);
break;
default:
this.set(0,0,0);
break;
}
}
При запуске ws2812.speech("");
внутри консоли, все работает. Однако, когда в паре с Annyang
библиотеки, я получаю это:
Uncaught TypeError: this.set is not a function
ws2812.speech @ script.js:29
b.annyang.init.d.onresult @ annyang.min.js:6
Что случилось?
[править]
Команды будет добавлена следующим образом:
annyang.addCommands({"ustaw *term światło":ws2812.speech});
В частности, внутри annyang, эта линия не может:
f[h].callback.apply(this,m)
ли замена this
с ws2812
единственным способом обойти это?
Вы передаете несвязанную функцию 'speech' как обратный вызов? Пожалуйста, укажите код, который * не удается * в вашем примере. – zzzzBov