Сообщение от 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 );
похоже, это дело вкуса
мне нравится так, ибо проверка на существование более близка к флагам, чем проверка значения на правдивость.
(и тут я понял, что я неправ....)