Javascript.RU

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

Именованные аргументы в функции - значение по умолчанию не выводится
Подскажите, почему этот код не выводит значение по умолчанию для поля sex?
function show(options) {
    var name = options.name || 'Anton';
    var age = options.age || 22;
    var sex = options.sex || 'Male';

    console.log(options.name);
    console.log(options.age);
    console.log(options.sex);
}


var opts = {
name: 'John',
age: 23
}

show(opts);
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2015, 19:37
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

options.sex = options.sex || 'Male';

или
console.log(sex);
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2015, 19:42
Новичок на форуме
Отправить личное сообщение для Kot_Vertolet Посмотреть профиль Найти все сообщения от Kot_Vertolet
 
Регистрация: 09.01.2015
Сообщений: 3

Цитата:
console.log(sex);
Протупил, простите. Так работает, спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2015, 20:17
Новичок на форуме
Отправить личное сообщение для Kot_Vertolet Посмотреть профиль Найти все сообщения от Kot_Vertolet
 
Регистрация: 09.01.2015
Сообщений: 3

Опять непонятки, написал функцию:
function taskCreation(taskDueDate, taskProperties) {
function taskCreation(taskDueDate, taskProperties) {
if(taskDueDate == null) {
		operation = 'add';
		interval = 1;
		period = 'days'
	}
else {
	var operation = taskDueDate.operation;
	var interval = taskDueDate.interval;
	var period = taskDueDate.period;
	var taskName = taskProperties.taskName || 'Defualt task name';
	var taskDescription = taskProperties.taskDescription || 'Default task decription';
}

	console.log("Task properties: Operation: " + operation  +', Interval: ' + interval 
		+ ', Period: ' + period + ', Task name: ' + taskName + ', Description: '+ taskDescription);
}


var opts = {
	taskName:'Some name'
}

taskCreation(null, opts)


В результате получаю такое:
Task properties: Operation: add, Interval: 1, Period: days, Task name: undefined, Description: undefined


В чём тут проблема, почему Task name и Description = undefined, если я указал дефолтное значение для Description, а Task name передается в аргументе?
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2015, 20:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Выполняется первая ветка if, вторая не выполняется. Чета ты совсем пенёк..
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2015, 20:39
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

ты не бойся в код-то глядеть
поставь breakpoint и нажимай на next step, если так сразу не видно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить значение переменной функции через select Fenec Элементы интерфейса 5 13.08.2010 15:32
Глобальная переменная, считать правильнае значение в функции konstantinopol Общие вопросы Javascript 11 01.05.2010 23:28
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Присвоить значение результату функции... Дроздов Общие вопросы Javascript 2 07.03.2009 21:42
Как вывести на экран значение функции SELECT MAX(id) Владдд Серверные языки и технологии 3 25.01.2009 16:07