是否可以在 javascript 中创建属性?
-
22-07-2019 - |
题
我想要定制 Array
接收数字作为索引的对象,并且根据索引的值,它将返回计算值。
例如:
>>> var MyArray(2);
>>> MyArray[2];
4
>>> MyArray.2;
4
我知道对于所示的示例,我更喜欢使用函数,但我想知道是否可以覆盖某些概念数组的属性/索引查找,但可能需要一些计算。
我知道 x.1 == x[1]
, ,所以我需要的是在javascript中创建一个属性。
我的意思是,让 x.variable = x.myPropery()
, ,所以每次我得到的值 x.variable
, ,我收到的回报 x.myPorperty()
.
这可能吗?
解决方案 2
其他提示
变量[属性]是相同的点表示法,以便你正在做MyArray.2,这是一个变量,而不是被评价的方法。你真的不能做你想做的,而不当它被分配或者改变属性的方法,或当你拉出来,计算权值的方法。
不,你不能覆盖[],其根本点符号,它不是一个真正的索引,你可以重写
回复:您的评论,当然,你可以做
var x = new Array();
x[1] = function () { alert('x') };
var myFunction = x[1];
x[1](); // alerts "x"
myFunction(); // alerts "x"
alert(x[1]); // alerts "function () { alert('x') };"
alert(myFunction); // alerts "function () { alert('x') };"
不隶属于 StackOverflow