JSFiddle - React, Tailwind, and code Playground

JavaScript

var numberMagic = function() {
    var chain = 0,
        self = this;
    self.valueOf = self.toString = function () { return chain; };
    self.add = function(i) {
        chain += i;
        return self;
    };
};


var magi = new numberMagic();
alert(magi.add(1).add(2)-0); // Uses valueOf b/c of -0
magi.add(3).add(4).add(5).add(6).add(7).add(8);
alert(magi); // Uses toString