Метод get JavaScript для всех свойств

Почему бы просто не использовать scanf ("% i") и проверить его возвращение?

47
задан arantius 14 June 2009 в 13:45
поделиться

3 ответа

Ближайшее, что вы можете найти, это __ noSuchMethod __ , который является эквивалентом __call () PHP в JavaScript.

К сожалению, нет эквивалента __get / __ set, который является позор, потому что с ними мы могли бы реализовать __noSuchMethod__, но я пока не вижу способа реализовать свойства (как в C #) с помощью __noSuchMethod __.

var foo = {
    __noSuchMethod__ : function(id, args) {
        alert(id);
        alert(args);
    }
};

foo.bar(1, 2);
48
ответ дан 7 November 2019 в 12:54
поделиться

Javascript 1.5 действительно имеет геттер / сеттер синтаксический сахар . Это очень хорошо объяснил Джон Ресиг здесь

. Он недостаточно универсален для использования в Интернете, но, безусловно, они есть в Firefox (также в Rhino, если вы когда-нибудь захотите использовать его на стороне сервера).

5
ответ дан 7 November 2019 в 12:54
поделиться

Если вы ищете что-то вроде функции PHP __ get () , я не думаю, что Javascript предоставляет какую-либо такую ​​конструкцию.

Лучшее, что я могу придумать. выполнение - это перебирать нефункциональные члены объекта и затем создавать соответствующую функцию «getXYZ ()» для каждого.

В хитроумном псевдо-коде:

for (o in this) {
    if (this.hasOwnProperty(o)) {
        this['get_' + o] = function() {
            // return this.o -- but you'll need to create a closure to
            // keep the correct reference to "o"
        };
    }
}
1
ответ дан 7 November 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: