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!
Array Elements Can Be Objects JavaScript variables can be objects.
The push() method is used to add one or multiple elements to the end of an array. It returns the new length of the array formed. An object can be inserted by passing the object as a parameter to this method. The object is hence added to the end of the array.
Arrays are just regular objects In Javascript, there are only 6 data types defined – the primitives (boolean, number, string, null, undefined) and object (the only reference type). Arrays do not belong to this list because they are objects as well.
There are 6 types of objects: Object.
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:
function ArrayFunction (arr) {
var f = function s (p, v) {
if (v !== undefined) {
s[p] = v
}
return s[p]
}
for (var i = 0; i < arr.length; i++) {
f[i] = arr[i]
}
return f
}
var a = new ArrayFunction([1, 3, 4])
var b = new ArrayFunction([1, 3, 4])
b(1, 5)
a[1] //3
b[1] //5
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 to undefined
, but that's generally not considered a good practice anyway.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With