Получить имя запрошенного подобъекта javascript

Если у меня есть объект с анонимной функцией внутри, как мне узнать, какой подобъект запрашивается, чтобы я мог вернуть значение?

var obj = function(a) {
    switch (a) {
        case 'subprop1': return 'subval1';
        case 'subprop2': return 'subval2';
        case 'subprop3': return 'subval3';
        default: return 'defaultval'; 
    }
}

Итак, если я позвоню:

obj.subprop1

Я должен получить:

subval1

person LeinardoSmtih    schedule 21.06.2014    source источник
comment
Я считаю, что что-то вроде геттера по умолчанию (если вы имеете в виду объекты, а не функции, как в опубликованном вами фрагменте), решит вашу проблему, но, по-видимому, такой вещи нет, вы можете прочитать больше здесь stackoverflow. ком/вопросы/3112793/   -  person kaapa    schedule 21.06.2014


Ответы (2)



Звоните obj("subprop1");

obj определяется как функция, поэтому вы должны называть ее как объявленную функцию (это называется выражением именованной функции).

Если вы хотите сделать obj.subprop1, вам нужно будет определить obj как объект, подобный этому

obj = {
    subprop1: 'subval1',
    subprop2: 'subval2',
    ...
};
console.log(obj.subprop1); //Spits out "subval1"
person Kodlee Yin    schedule 21.06.2014