Языковая политика
Общие обсуждения => Компьютеры и интернет => 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.
Отсюда, кстати говоря, практическое следствие, что нужно быть аккуратным с изменением объекта, если это может неприятно удивить других пользователей этого объекта.