2012-04-24 4 views
1

Я хотел бы установить элементы массива структуры в ее создании. Является ли это возможным?Установить элементы анонимной структуры

Теперь, в первую Я определить-структуру, а затем установить массив

function struct(a, b) { 
    this.a=a; 
    this.b=b; 
} 

var foo = [ 
    new struct(1,2), 
    new struct(3,4), 
] 

, но я хотел бы в anoynymous функцию, ничего подобного:

var foo = function(a, b) [ 
    (1,2), 
    (3,4), 
] 

Примечание: это неверно, но вы видите идею

ответ

1

То, что вы хотите использовать, - это литеральная запись объекта в дополнение к литературной нотации массива.

var foo = [ 
    {a:1,b:2}, 
    {a:3,b:4} 
]; 
console.log(foo[0].b); //-> 2 

Если вы действительно хотите, чтобы вызвать функцию, вы должны дать ему имя (хотя это может быть коротким):

function s(a,b){ 
    return {a:a,b:b}; 
} 
var foo = [ 
    s(1,2), 
    s(3,4) 
]; 

Вам не нужно использовать new ключевое слово для создания нового объекта; вы можете настроить новый экземпляр — и even set the prototype-based inheritance — все в пределах обычного вызова функции.