Показать сообщение отдельно
  #341 (permalink)  
Старый 31.07.2012, 17:50
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от x-yuri Посмотреть сообщение
Ну хороше, есть функция:
function someFunction(..., options) {
    if ('someOption' in options) {
        ...
    }
}

Если я хочу передать в функцию значение в случае истинности некоторого условия, я должен написать:
someFuction(..., $.extend({<otherOptions>},
    <someCondition> ? {someOption: <someValue>} : {}));

Если же поступить таким образом:
function someFunction(..., options) {
    if (options.someOption) {
        ...
    }
}

Я смогу вызвать ее следующим образом:
someFuction(..., {<otherOptions>, someOption: <someCondition> ? <someValue> : null});
хм.. да, чтобы "передумать", придётся делать так :
var obj = {
    "foo" : "HA-HA! I'm here!"
};

(true/*<- someCondition*/)    ?   (delete obj.foo/*<- null*/)   :   /*someValue -> */null;

alert( "foo" in obj );


похоже, это дело вкуса мне нравится так, ибо проверка на существование более близка к флагам, чем проверка значения на правдивость.
(и тут я понял, что я неправ....)

Последний раз редактировалось melky, 31.07.2012 в 17:55.
Ответить с цитированием