Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   порядок выполнения действий (https://javascript.ru/forum/misc/43285-poryadok-vypolneniya-dejjstvijj.html)

shifteee 29.11.2013 15:59

порядок выполнения действий
 
Добрый день, дамы и господа.
Есть объект с сеттером и геттером:
var gsrService = {
    alertsList : {
         set add(v) {
            if(_shown.length < 5) {
                 _shown.push(v);
                 return true;
            }
            return false;
        },  //тут была опечатка
        get : function (a) {/*bla-bla*/}
    },

    ....

}


Вот так вот работает:

var aaa = 'piu - piu';
if(gsrService.alertsList.add = aaa) {
    //bla-bla
}


А теперь вопрос

почему вот то самое "бла-бла", которое внутри if, срабатывает всегда и
consile.log(gsrService.alertsList.add = e.detail.thread) выводить 'piu - piu'
вместо true или false

shifteee 29.11.2013 16:24

Это setter

kobezzza 29.11.2013 16:35

Потому что операция присваивания всегда возвращает крайне правый элемент (ну кроме присваиваний при декларации переменной), т.е. то, что присваивается, т.е. тебе для корректной работы нужен сетер как просто метод, а не как set

shifteee 29.11.2013 16:44

Спасибо, буду знать


Часовой пояс GMT +3, время: 02:21.