Мне трудно найти информацию об этом: могут ли параметры Java-скрипта быть чем угодно? Например, я знаю, что параметр функции может быть другой функцией. Но также параметр кода java-скрипта может быть целым набором совершенно другого кода, какого-то кода, который вы не ожидаете увидеть там, поскольку этот другой код не указан в параметрах функции. Я пытался найти об этом, но все учебники, которые я нашел, показывают только основы того, что функция или действительно простой оператор java-скрипта имеют параметры и аргументы и немного больше деталей, может ли кто-нибудь объяснить это мне лучше и, надеюсь, предоставить лучшие ссылки ? Например, при использовании в java-скрипте, как показано ниже, css-преобразование 3d имеет ряд ожидаемых параметров, как описано здесь: https://www.w3schools.com/jsref/prop_style_transform.asp но в приведенном ниже коде переменная + currentAngle + также вставлена в код, но когда параметры преобразования 3d официально определены, никто не говорит, что вы также можете вставлять переменные. Вы, очевидно, можете это сделать, но я пытаюсь точно узнать правила об этом, чтобы я мог быть в курсе, когда пишу свой код.
var currentAngle = 0;
var currentDirection = 0; // 0 - Increasing, 1 - Decreasing
function spin() {
document.getElementById("myDIV");
setInterval(function() {
if (currentDirection == 0) {
// Allow one complete rotation.
if (currentAngle < 360) {
myDIV.style.transform = "rotate3d(0,1,0.2,"+ currentAngle +"deg)";
currentAngle += 10;
} else {
// Change the direction.
currentDirection = 1;
currentAngle -= 10;
myDIV.style.transform = "rotate3d(0,1,0.2,"+ currentAngle +"deg)";
}
Ваш вопрос очень неясен. Вы спрашиваете, могут ли параметры быть некоторыми функциями, но не другими функциями?
Пожалуйста, добавьте пример к вашему вопросу; похоже, вы говорите о обратных вызовах, когда в качестве параметра передается вся анонимная функция. Это обычная практика для асинхронных операций.
@ emma46, кстати, добро пожаловать в StackOverflow. Как уже отмечали другие, это может помочь, если вы четко объясните проблему, которую пытаетесь решить, или конкретный фрагмент кода, который у вас возникли проблемы с пониманием.
Любое значение JS может быть передано в качестве аргумента функции. Фрагмент кода, обозначающий значение, в JS называется «выражением» (в отличие от кода, обозначающего инструкцию «сделать что-то», известного как «оператор»). Таким образом, синтаксически вы можете взять любое выражение <f>, которое оценивается как функция, и применить его к любому выражению <x>, которое оценивается как угодно, написав <f>(<x>).
Короткий ответ: да. Все, на что можно ссылаться через переменную, можно передать функции. Я полагаю, что под словом «что угодно» вы ломаете голову types? В JS нет классов или типов. Здесь есть много ответов на этот счет, но вкратце это язык без строгой типизации, обеспечивающий большую гибкость. В настоящее время JS все больше движется к тому, чтобы выглядеть как типизированный язык с Typescript.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Аргументы могут иметь любое значение.
Код — это то, что создает программу, и обычно не является ценностью внутри программы.
Исходный код, определяющий вызов функции, может включать любое выражение, которое оценивается как значение в позиции, где ожидается аргумент.
Я обновил вопрос, чтобы, надеюсь, уточнить, о чем я спрашиваю, Квентин и Асад, вы ближе всех к пониманию и ответу на мой вопрос, так что спасибо.
Вы путаете CSS и JS. В JS строки — это просто строки. В CSS значение не включает никаких функций.
Нет, я понимаю, что это CSS, но он используется в Javascript с дополнительными переменными. Мне нужно найти лучший пример только с javascript, но представьте, что мой пример полностью состоит из javascript, и я задал тот же вопрос о + currentAngle +
@ emma46 — Тогда я отсылаю вас к последнему абзацу этого ответа.
Квентин, хорошо, честно, я думаю, вы ответили на вопрос. Что происходит в том же сценарии, когда код не является функцией javascript, а является просто выражением или оператором javascript, применяются ли те же правила? т.е. значения могут быть любым кодом, пожалуйста, где есть официальная информация об этом?
@emma46 emma46 этот комментарий выше не имеет абсолютно никакого смысла, developer.mozilla.org/en-US/docs/Web/JavaScript
Это так, вот лучший пример: вы не используете функцию javascript, вы просто используете встроенный метод JavaScript String charCodeAt(). Единственным перечисленным параметром для метода charCodeAt() строки JavaScript является «индекс», как в этом синтаксисе string.charCodeAt(index): однако это кажется в Javascript, где параметр (индекс) вы также можете добавить в другие параметры или даже другой код для выполнить сначала перед оценкой string.charCodeAt(index), в этом случае код может выглядеть так: string.charCodeAt(другой код javascript(index)) - я видел, но я хочу узнать правила этого
@emma46 — charCodeAtявляется функция («метод» — это просто имя, данное функции, когда она является значением свойства объекта). Я отсылаю вас к последнему абзацу этого ответа.
Да, встроенная функция, хорошо, согласен, но вы видите, что я прошу из моего примера.
@emma46 — Да, и я отсылаю вас к последнему абзацу этого ответа.
ха-ха, Квентин, не волнуйся, ты получишь ответ на свой вопрос с зеленой галочкой. Я просто покрываю все базы здесь.
оберните свой сложный код в функцию и передайте его в качестве аргумента ???