Javascript.RU

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

вариант описания функций
Какой вариант описания функций предпочтительней? В двух словах почему? (я понимаю, что первый выполняется при загрузке)
//вариант 1
var math={
	raz:function raz(val){
		return val+1;
	},
	dva:function dva(val){
		return val+2;
	}
};
//вариант 2
function raz(val){
	return val+1;
}
function dva(val){
	return val+2;
}

Последний раз редактировалось _Ivan, 15.08.2012 в 09:17.
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2012, 09:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от _Ivan
я понимаю, что первый выполняется при загрузке
Нет. Ничего там не выполняется... Оба варианта простое определение медодов и функций

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
//вариант 1
var math={
	raz:function raz(val){
		return val+1;
	},
	dva:function dva(val){
		return val+2;
	}
};
 //вариант 2
function raz(val){
	return val+1;
};
function dva(val){
	return val+2;
};
 // Вот и вся разница
alert(math.raz(1));
alert(raz(1));
</script>
</head>
<body>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2012, 09:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Как "преимущество" можно отметить вот такой вызов метода...

var math={
	raz:function raz(val){
		return val+1;
	},
	dva:function dva(val){
		return val+2;
	}
};
alert(math['raz'](1));
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2012, 13:53
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от _Ivan
Какой вариант описания функций предпочтительней?
какой нравится.
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2012, 23:15
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

В первом случае Вы засоряете пространство имён одним новым именем, во втором — двумя.Так что лучше первый. А вот между
//вариант 1
var raz = function raz(val){
		return val+1;
	},
	dva = function dva(val){
		return val+2;
	};

//вариант 2
function raz(val){
	return val+1;
}
function dva(val){
	return val+2;
}
Уже особой разницы нет.
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2012, 01:17
Интересующийся
Отправить личное сообщение для _Ivan Посмотреть профиль Найти все сообщения от _Ivan
 
Регистрация: 27.07.2012
Сообщений: 12

Сорри, плохой пример. Как такой?

var overlay={
	val:0.1,
	speed:10,
	init:function(){
		overlay.obj=createEl('div',{},{'display':'none','background':'#000','width':'100%','height':'100%','top':'0','left':'0','position':'fixed','zIndex':'98'});
	},
	show:function(){
		show(overlay.obj);
		if(overlay.val<0.7){
			setOpacity(overlay.obj,overlay.val+=0.02);
			setTimeout('overlay.show()',overlay.speed);
		}
	},
	hide:function(){
		if(overlay.val>0){
			setOpacity(overlay.obj,overlay.val-=0.02);
			setTimeout('overlay.hide()',overlay.speed);
		}
		else{hide(overlay.obj);}
	}
};

1. Эта ф-я выполняется ведь частично при загрузке (первые 2 строчки)?
2. Повторю вопрос, какой вариант лучше (второй писать не буду, смысл ясен)?
Ответить с цитированием
  #7 (permalink)  
Старый 16.08.2012, 13:54
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от _Ivan
1. Эта ф-я выполняется ведь частично при загрузке (первые 2 строчки)?
там создаётся объект, и в него помещаются свойства. никакая функция не выполняется.

Сообщение от _Ivan
2. Повторю вопрос, какой вариант лучше (второй писать не буду, смысл ясен)?
лучше через наследование и ООП. а в этих двух случаях лучше то, что лучше читается.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
селект переделанный под список Vasёk18 Элементы интерфейса 0 13.04.2012 23:49
Какая разница между определениями функций Nadine Общие вопросы Javascript 1 07.03.2012 16:07
счетчик к коду Mc'Intosh Общие вопросы Javascript 2 20.02.2012 09:42
Вызов функций iframe из кода Firefox-расширения Jury Firefox/Mozilla 0 03.05.2011 13:09
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20