Языковая политика

Общие обсуждения => Компьютеры и интернет => Topic started by: cetsalcoatle on 25 June 2024, 23:19:48

Title: function loadScript(src) {}
Post by: cetsalcoatle on 25 June 2024, 23:19:48
Меня интересует аргумент (src), что он делает?
Title: Re: function loadScript(src) {}
Post by: Upliner on 26 June 2024, 00:13:58
Хотелось бы немного контекста
Title: Re: function loadScript(src) {}
Post by: Bhudh on 26 June 2024, 00:48:50
Видимо, речь об этом (https://learn.javascript.ru/callbacks).
Там же и примеры есть. И да, название такая функция может иметь любое.
Title: Re: function loadScript(src) {}
Post by: Квас on 26 June 2024, 20:37:46
А если это буквально определение
Code: [Select]
function loadScript(src) {}то аргумент src не делает ничего, равно как и сама функция. :lol:
Title: Re: function loadScript(src) {}
Post by: cetsalcoatle on 26 June 2024, 22:26:00
Видимо, речь об этом (https://learn.javascript.ru/callbacks).
Там же и примеры есть. И да, название такая функция может иметь любое.
Да, именно об этом. Мне вообще в целом не понятно как работают аргументы, когда это какие-то переменные или логические операторы ещё как-то могу разобраться, но всё прочее вызывает синий экран. :dunno:
Title: Re: function loadScript(src) {}
Post by: Bhudh on 26 June 2024, 22:46:00
Аргумент — это и есть переменная.
Внутренняя переменная функции, с помощью которой в функцию можно передавать желаемое значение.
В данном случае значение — это адрес файла, который будет вставлен в атрибут src элемента script, который появится на странице после вызова функции.

До:
Code: (HTML) [Select]
<head>
</head>

Вызов:
Code: (JavaScript) [Select]
loadScript("myscripts/mycoolscript.js")
После вызова:
Code: (HTML) [Select]
<head>
<script src="myscripts/mycoolscript.js"/>
</head>

Надо сказать, JS один из немногих языков, где число параметров жёстко не фиксировано, но тем не менее все переданные параметры функции доступны. Ведь у неё есть магическая внутренняя переменная arguments, в которой все они заботливо хранятся.
Title: Re: function loadScript(src) {}
Post by: cetsalcoatle on 27 June 2024, 07:39:25
А ссылки к какому типу данных относятся?
Title: Re: function loadScript(src) {}
Post by: Bhudh on 27 June 2024, 07:52:42
В JS нет такого особого типа данных. По ссылке копируются и передаются в функцию любые объекты: типа Object и его дочерних типов: Array, Function (то есть любые функции), DOM-объекты, псевдомассивы вроде NodeList и тех же arguments, всякие новомодные Promise, Map, Set.
Подробности здесь (https://learn.javascript.ru/object-basics).
Title: Re: function loadScript(src) {}
Post by: Квас on 27 June 2024, 12:24:18
Мне кажется, для JS само понятие "ссылка" не очень нужно. Оно актуально для низкоуровневых языков, где нет объектов, а есть области в памяти. А в JS настоящие объекты, для которых осмысленно утверждение "тот же самый". И слово "ссылка" относится к тому обстоятельству, что переменная - это имя, каким-то образом связанное с объектом. Две переменные могут быть связаны с одним ("тем же самым") объектом. Например,
Code: [Select]
>> 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.

Отсюда, кстати говоря, практическое следствие, что нужно быть аккуратным с изменением объекта, если это может неприятно удивить других пользователей этого объекта.