Языковая политика
		Общие обсуждения => Компьютеры и интернет => Topic started by: cetsalcoatle on 25 June 2024, 23:19:48
		
			
			- 
				Меня интересует аргумент (src), что он делает?
			
- 
				Хотелось бы немного контекста
			
- 
				Видимо, речь об этом (https://learn.javascript.ru/callbacks).
 Там же и примеры есть. И да, название такая функция может иметь любое.
- 
				А если это буквально определение
 function loadScript(src) {}то аргумент src не делает ничего, равно как и сама функция. :lol:
- 
				Видимо, речь об этом (https://learn.javascript.ru/callbacks).
 Там же и примеры есть. И да, название такая функция может иметь любое.
 
 Да, именно об этом. Мне вообще в целом не понятно как работают аргументы, когда это какие-то переменные или логические операторы ещё как-то могу разобраться, но всё прочее вызывает синий экран. :dunno:
- 
				Аргумент — это и есть переменная.
 Внутренняя переменная функции, с помощью которой в функцию можно передавать желаемое значение.
 В данном случае значение — это адрес файла, который будет вставлен в атрибут src элемента script, который появится на странице после вызова функции.
 
 До:
 <head>
 </head>
 Вызов:
 loadScript("myscripts/mycoolscript.js")
 После вызова:
 <head>
 <script src="myscripts/mycoolscript.js"/>
 </head>
 Надо сказать, JS один из немногих языков, где число параметров жёстко не фиксировано, но тем не менее все переданные параметры функции доступны. Ведь у неё есть магическая внутренняя переменная arguments, в которой все они заботливо хранятся.
- 
				А ссылки к какому типу данных относятся?
			
- 
				В JS нет такого особого типа данных. По ссылке копируются и передаются в функцию любые объекты: типа Object и его дочерних типов: Array, Function (то есть любые функции), DOM-объекты, псевдомассивы вроде NodeList и тех же arguments, всякие новомодные Promise, Map, Set.
 Подробности здесь (https://learn.javascript.ru/object-basics).
- 
				Мне кажется, для JS само понятие "ссылка" не очень нужно. Оно актуально для низкоуровневых языков, где нет объектов, а есть области в памяти. А в JS настоящие объекты, для которых осмысленно утверждение "тот же самый". И слово "ссылка" относится к тому обстоятельству, что переменная - это имя, каким-то образом связанное с объектом. Две переменные могут быть связаны с одним ("тем же самым") объектом. Например,
 >> o1 = { foo: 1, bar: 2 }
 Object { foo: 1, bar: 2 }
 >> o2 = o1
 Object { foo: 1, bar: 2 }
 >> o1.foo = 33
 33
 >> o2
 Object { foo: 33, bar: 2 }
 
Имя o1 связано с объектом. И имя o2 связано с тем же самым объектом. Поэтому когда я изменяю этот объект через переменную o1, я вижу результат и через переменную o2.
 
 Отсюда, кстати говоря, практическое следствие, что нужно быть аккуратным с изменением объекта, если это может неприятно удивить других пользователей этого объекта.