So, basically I have this:
Array.prototype.toString = function() {
return (\"[\" + this.map(thing => thing = \'\"\' + thing + \'\"\').join(\', \') + \"]\"
Because when you add {}
, it turns it from a pure functional-style arrow function into a normal function, just it has arrow syntax. If you want to return a value from this, you need to explicitly write return thing;
at the end:
Array.prototype.toString = function() {
return ("[" + this.map(thing => {thing = '"' + thing + '"'; return thing;}).join(', ') + "]")
}
The reason the pure arrow function works is because the statement thing = '"' + thing + '"'
actually returns the result, and hence is the return value of the function. You could get exactly the same result without reassigning thing
:
Array.prototype.toString = function() {
return ("[" + this.map(thing => '"' + thing + '"').join(', ') + "]")
}