Rewrite of Array.join
A short review;


You probably want to cache this.content.length
That check for the end of array is clunky
separator will change from 0 to "", an unlikely edge case, but it could happen
Why are array elements in this.content ? I would have gone for this[i] instead
string is not very evocative, I went with out


Obligatory rewrite;



Array.prototype.myJoin = function stringMyJoin(separator) {
    separator = separator || "";
    let out = this[0];
    const length = this.length;
    for (let i = 1; i &lt; length; i++) {
        out += separator + this[i];
    }
    return out || "";
}

console.log([].myJoin(","), [].myJoin(",") === "");
console.log(["apple"].myJoin(","));
console.log(["apple","bear","bananers"].myJoin(","));