Prototyping OneWire

Posted on
  • Prototyping works fine in Espruino like this:

    function a(v){ this.a = v; this.inc = function() {this.a++;}; }
    function b(v,x){ a.call(this,v); this.b = x; }
    b.prototype = a;
    b.prototype.constructor = b;
    var t = new b(1,5); console.log(t.a,t.b);
    t.inc(); console.log(t.a,t.b);

    I now would like to create something like OneWireDS18_20 using prototype and cannot get it working.

    function myOneWire(pin){ OneWire.call(this,pin); }
    myOneWire.prototype = OneWire;
    myOneWire.prototype.constructor = myOneWire;
    var myOW = new myOneWire(D8);
    console.log(myOW.search());

  • The built in functions can't be called using "call", and that is probably causing you issues.

    I also don't think that prototype.constructor is honoured at the moment (I need to look at the spec to see how it should be used), but I could be wrong there.

    It's probably best to just instantiate OneWire as a field in the DS18B20 module, like the existing module does.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Prototyping OneWire

Posted by Avatar for JumJum @JumJum

Actions