Tim
Tim

Reputation: 1018

Javascript function return as object property

I'm trying to return the value of a function as an object property (as opposed to the function itself). This is my code right now, but it breaks when I try to access option_list[0][0].label or .value within my jQuery plugin. Thoughts?

$('#new').create({
    option_list:function(){return [
        [
            {label:'option1', value:'1'},
            {label:'option2', value:'2'},
            {label:'option3', value:'3'}
        ]
    ];}
});

Upvotes: 4

Views: 7103

Answers (2)

notion
notion

Reputation: 47

Maybe I get you wrong but why do you want to have such a multidimensional array?

Let the function give you an object with an encapsulated array:

$('#new').create({
    option_list:function(){ return {
        [
            {label:'option1', value:'1'},
            {label:'option2', value:'2'},
            {label:'option3', value:'3'}
        ]
    };}
});

Upvotes: -1

broofa
broofa

Reputation: 38142

You need to actually invoke the function, like so ...

$('#new').create({
    option_list:(function(){return [
        [
            {label:'option1', value:'1'},
            {label:'option2', value:'2'},
            {label:'option3', value:'3'}
        ]
    ];}())
});

Upvotes: 8

Related Questions