I want to figure out if Array[] and Object[] can be replaced by Array() and Object(). Can a function prototype be stuck into arrays or objects prototype chain to make them callable. Basically I am looking for some thing like this:
// some magic with prototypes
????????????????
a = [1, 3, 4]
b = [1, 3, 4]
console.log(a[1]) // prints 3
console.log(b(1)) // prints 3
a[0] = -1
// same as
b(0, -1)
console.log(a[1], b(1)) // prints -1 -1
Thanks alot!
You probably don’t want to do this, especially in any browser. This doesn’t have a lot of nice features of Array, including efficiency. That said:
I originally wanted to use prototypes, but objects don’t inherit callableness from their prototypes.
EDIT: Fixed above to not use
arguments. This version does not allow you to set a value toundefined, but that’s generally not considered a good practice anyway.