在函数调用中声明关联数组是否可行?

6
我希望你能在函数参数中声明关联数组 - 这是可能的吗?
这段代码不起作用。
<a href="javascript:functionName(new Array('cool'=>'Mustang','family'=>'Station'))">click</a>

这段代码已经可以正常工作了,但这是唯一的方法吗?

<script>
    var my_cars= new Array()
    my_cars["cool"]="Mustang";
    my_cars["family"]="Station";
</script>

<a href="javascript:functionName(my_cars)">click</a>

1
为什么你会更喜欢第一种方式?通常情况下,你的HTML中应该尽可能少地包含JavaScript。 - Matt
3个回答

20

您试图在 JavaScript 中使用 PHP 语法。

您需要使用 JavaScript 语法来创建对象字面量:

functionName({ cool: "Mustang", family: "Station" });

10

当您只需要一个具有字符串属性名称的对象时,请勿使用 "new Array()":

var my_cars = {};
my_cars["cool"]="Mustang";
my_cars["family"]="Station";

或者只是

var my_cars = {
  cool: 'Mustang', family: 'Station'
};

数组旨在支持整数索引属性,并自动维护整数索引属性列表的长度(嗯,是"概念上"的长度)。


6

这将起作用。

<a href="javascript:functionName({'cool':'Mustang','family':'Station'})">点击</a>

在JS中,对象是关联数组


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接