简体   繁体   中英

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'}
        ]
    ];}
});

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'}
        ]
    ];}())
});

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'}
        ]
    };}
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM