It really bothers me. I can easily create a new class that inherits methods from Array.prototype:
var MyArray = function() {};
MyArray.prototype = Array.prototype;
var myArray = new MyArray();
myArray.push(1);
The same inheritance pattern does not work with Set.prototype:
var MySet = function() {};
MySet.prototype = Set.prototype;
var mySet = new MySet();
mySet.add(1);
Is this an implementation issue? Is there any other inheritance pattern that will work? I tried this in node v0.12 and Canary with the same results.
EDIT: This solution works, but I'm still not sure why the same doesn't work above:
var MySet = function(array) {
var inst = new Set(array);
inst.__proto__ = MySet.prototype;
return inst;
}
MySet.prototype = Object.create(Set.prototype);
source
share