Javascript.RU

Голосование: Как лучше
Опции опроса
Как лучше

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2015, 20:56
Интересующийся
Отправить личное сообщение для Nikolay256 Посмотреть профиль Найти все сообщения от Nikolay256
 
Регистрация: 12.02.2011
Сообщений: 16

Как вы считаете правильнее?
function lb_confirm(options) {
options = (typeof(options)==='object' ? options:{});
}

или

function lb_confirm(options) {
options = options || {};
}

Я лично за вариант 2, так как считаю №1 лишней смысловой нагрузкой
Те, кто будет использовать данную ф-ю в дальнейшем, должны знать, что они передают в нее.

Последний раз редактировалось Nikolay256, 16.05.2015 в 00:53.
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2015, 21:12
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

options = options || {};
Ответить с цитированием
  #3 (permalink)  
Старый 15.05.2015, 21:41
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

правильнее es6
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 15.05.2015, 21:46
Интересующийся
Отправить личное сообщение для Nikolay256 Посмотреть профиль Найти все сообщения от Nikolay256
 
Регистрация: 12.02.2011
Сообщений: 16

function multiply(a, b = 1) {}
нативный js так не умеет
Ответить с цитированием
  #5 (permalink)  
Старый 15.05.2015, 22:05
Новичок на форуме
Посмотреть профиль Найти все сообщения от fuckJS
 
Регистрация: 15.05.2015
Сообщений: 8

Сообщение от Nikolay256
нативный js так не умеет
Да, а если бы это было нужно, было бы совсем хорошо.
Ответить с цитированием
  #6 (permalink)  
Старый 15.05.2015, 22:17
Новичок на форуме
Посмотреть профиль Найти все сообщения от fuckJS
 
Регистрация: 15.05.2015
Сообщений: 8

Сообщение от Nikolay256
function multiply(a, b = 1) {}
Кстати, этот подход, насколько я понимаю, значительно урезает гибкость
Object.prototype.optional=100
f=function(optional){with(this) return optional||"fuck"}

console.log(f())

delete Object.prototype.optional

console.log(f())

console.log(f(200))


//>>>> 100
//>>>> fuck
//>>>> 200
Ответить с цитированием
  #7 (permalink)  
Старый 15.05.2015, 22:25
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

fuckJS,
Цитата:
Кстати, этот подход, насколько я понимаю, значительно урезает гибкость
Каким образом?
Ответить с цитированием
  #8 (permalink)  
Старый 15.05.2015, 22:57
Новичок на форуме
Посмотреть профиль Найти все сообщения от fuckJS
 
Регистрация: 15.05.2015
Сообщений: 8

Сообщение от Safort
Каким образом?
Так я же пример привел, из него разве не видно? Выражение function(opt=1){...} всегда будет перекрывать. То есть, при отсутствии аргумента у тебя будет всегда дефолтный, независимо от того, какому объекту ты отсылаешь сообщение, и есть ли у него это свойство. Насколько я понял из описания, может ошибаюсь.
Ответить с цитированием
  #9 (permalink)  
Старый 15.05.2015, 23:09
Интересующийся
Отправить личное сообщение для Nikolay256 Посмотреть профиль Найти все сообщения от Nikolay256
 
Регистрация: 12.02.2011
Сообщений: 16

optional=100
f=function(optional){with(this) return optional||"fuck"}
console.log(f())

так по проще. тут ты делаешь глобальную область видимости приоритетнее локальной, в которой переменная option хранит undefined
на мой взгляд это извращение и так делать не стоит
Ответить с цитированием
  #10 (permalink)  
Старый 15.05.2015, 23:13
Новичок на форуме
Посмотреть профиль Найти все сообщения от fuckJS
 
Регистрация: 15.05.2015
Сообщений: 8

Сообщение от Nikolay256
глобальную область видимости
глобальная область тут вообще не при чем. Там свойство объекта приоритетней, любого объекта, не обязательно верхнего.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Как правильно реализовать такой функционал? Julian Общие вопросы Javascript 3 16.01.2015 12:34
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как правильнее? Рикка (X)HTML/CSS 8 09.10.2007 09:30