数组语法的Javascript对象

时间:2013-10-01 15:22:10

标签: javascript

有谁能告诉我我的语法有什么问题。我有一个数组javascript对象的声明:

$.fn.eCardify.frames = {
    nonie: {
        {flip_over_envelope, flip_over_envelope},
        {open_envelope, open_envelope},
        {show_card, show_card},
        {open_card, open_card}          
    },
    ie: {
        {flip_over_envelope_ie, flip_over_envelope_ie},
        {open_envelope_ie, open_envelope_ie},
        {show_card_ie, show_card_ie},
        {open_card_ie, open_card_ie}
    }
}

我正试图以这种方式访问​​它:

function step(){
    if($.fn.eCardify.settings.is_ie){
        $.fn.eCardify.frames.ie[$.fn.eCardify.frame]();
    }else{
        $.fn.eCardify.frames.nonie[$.fn.eCardify.frame]();
    }
    $.fn.eCardify.frame++;
}

然而,chrome(可能还有其他浏览器)并不喜欢我的数组声明。它在数组声明的第二行给出了Uncaught SyntaxError: Unexpected token {

我做错了什么?

4 个答案:

答案 0 :(得分:6)

{}用于对象而不是数组

$.fn.eCardify.frames = {
    nonie: [
        [flip_over_envelope, flip_over_envelope],
        [open_envelope, open_envelope],
        [show_card, show_card],
        [open_card, open_card]
    ],
    ie: [
        [flip_over_envelope_ie, flip_over_envelope_ie],
        [open_envelope_ie, open_envelope_ie],
        [show_card_ie, show_card_ie],
        [open_card_ie, open_card_ie]
    ]
}

答案 1 :(得分:3)

数组使用[]

{}用于对象(具有键/值对)

答案 2 :(得分:1)

你所拥有的不是数组,因为括号是卷曲的。如果要声明数组,请使用方括号:

$.fn.eCardify.frames = {
    nonie: [
        [flip_over_envelope, flip_over_envelope],
        [open_envelope, open_envelope],
        [show_card, show_card],
        [open_card, open_card]          
    ],
    ie: [
        [flip_over_envelope_ie, flip_over_envelope_ie],
        [open_envelope_ie, open_envelope_ie],
        [show_card_ie, show_card_ie],
        [open_card_ie, open_card_ie]
    ]
}

虽然这种结构仍然很奇怪。你为什么需要这样的东西?

答案 3 :(得分:0)

对象的注释如下:{},而数组的注释为:[]

两者之间的区别之一是Objects期望一个键:值定义,而数组可以只是一组值。

示例

var arr = [val1, val2, val3];
var obj = {'key1': val1, 'key2': val2, 'key3': val3};