-
• #2
Hi. It seems there's a bug in the interpreter that causes
this
to get reset...It must have crept in recently because that code did work when I wrote it. I've made an issue for it and I'll try and fix it today I hope: https://github.com/espruino/Espruino/issues/233
In the mean time, a simple change of order will help to fix it:
Pin.prototype.startFlashing = function(period) { console.log(this); var pin = this; if (Pin.intervals===undefined) Pin.intervals = []; if (Pin.intervals[pin]) clearInterval(Pin.intervals[pin]); var on = false; Pin.intervals[pin] = setInterval(function() { on = !on; digitalWrite(pin, on); }, period); };
I am following the example in Try 4. I entered
But, when I run "LED1.startFlashing(1000);" in the terminal, I get "ERROR: Invalid pin!"
"console.log(pin);" prints "=undefined" so something is very wrong.
However, when I run "var light = LED1;" and then "light.startFlashing(1000);" I get the expected behavior.
What is going on here? I am a Java developer and don't use JS that much, so I may be misunderstanding something simple.