Javascript 创建具有相同值的多个索引-速记
我正在寻找一种方法来最小化所有索引都具有相同值的数组的创建。这可能不可能,但我会发现它非常方便 考虑:Javascript 创建具有相同值的多个索引-速记,javascript,arrays,shorthand,Javascript,Arrays,Shorthand,我正在寻找一种方法来最小化所有索引都具有相同值的数组的创建。这可能不可能,但我会发现它非常方便 考虑: var layer = []; layer['game'] = new Kinetic.Layer(); layer['navigation'] = new Kinetic.Layer(); layer['notification'] = new Kinetic.Layer(); (其中动能层是一个对象,但我怀疑它并不重要) 寻找类似于: var layer['game','navigati
var layer = [];
layer['game'] = new Kinetic.Layer();
layer['navigation'] = new Kinetic.Layer();
layer['notification'] = new Kinetic.Layer();
(其中动能层是一个对象,但我怀疑它并不重要)
寻找类似于:
var layer['game','navigation','notification'] = new Kinetic.Layer();
这可能吗?当然,它并不是真正需要的——但我会发现它非常方便,重复代码是一种不好的做法
不,我不能有一个单独的索引或变量,因为这些对象稍后会在我的代码中更改-并且它们必须在使用之前声明。我非常确定这应该可以工作,我记不起在哪里见过它,但我看到它在某处游荡
var layer = [];
layer['game'] = layer['navigation'] = layer['notification'] = new Kinetic.Layer();
在这种情况下,速记就不一样了,因为所有三个都指向相同的
Kinetic.Layer
,而不是三个不同的层
因此,在你的情况下,不要尝试速记
但是,一般情况下,您可以将相同的值分配给多个变量,如下所示:
layer['game'] = layer['navigation'] = layer['notification'] = value;
旁注:您正在使用一个数组对象
[]
,然后分配字符串键-这不是严格正确的,您应该使用一个通用对象{}
。Hmm,仔细想想,这是有道理的。您是否介意提供一个正确用法的基本示例(即在旁注上)?谢谢你的回复!基本上,任何变量都可以一次安全地分配给多个变量。复合值(如数组和更一般的任何类型的对象)不能,除非对该对象有多个引用是理想的效果(例如,otherobj.linktovalue=thisobj.value=[1,2,3];
)。