Может кто-нибудь объяснить, пожалуйста, как значение может быть передано аргументом? - PullRequest
0 голосов
/ 28 июня 2019

Может кто-нибудь объяснить, пожалуйста, как это работает? при вызове функции записывается «некоторое значение»

function a(pass){
  pass("some value");
}

 a(q=>{
 console.log(q);
});

однако, если я вызываю функцию, подобную этой, я получаю сообщение об ошибке "pass is not function"

function a(pass){
  pass("some value");
}
console.log(a());

и так, ошибка "аргумент" не определена.

function a(pass){
  pass("some value");
}

console.log(a(argument));

Ответы [ 4 ]

1 голос
/ 28 июня 2019

Пример 1:

function a(pass){
  pass("some value");
}

 a(q=>{
 console.log(q);
});

В этом случае вы передаете q=>{console.log(q);} функции a.Поэтому он вызывает это и выводит что-то в консоль.

Пример 2:

function a(pass){
  pass("some value");
}
console.log(a());

В этом случае вы не передаете никаких параметров функции a.Таким образом, функция пытается вызвать неопределенный параметр, который по определению не является функцией.

Пример 3:

function a(pass){
  pass("some value");
}

console.log(a(argument));

В этом случае вы передаете неопределенную переменную с именем argument в функциюа, в результате которого вы получите сообщение об ошибке.Надеюсь, это поможет.

0 голосов
/ 28 июня 2019

Вам нужна функция pass, потому что вы вызываете ее, когда вызываете функцию a ().

function a(pass){
   pass("some value");
}
console.log(a()); 


function pass(xyz){
   alert('hey');
}
0 голосов
/ 28 июня 2019

Функция a в приведенном выше коде является функцией более высокого порядка.Поскольку она ожидает другую функцию в качестве аргумента.

  1. В первом примере первая переменная является функцией, поэтому value будет функцией.Так что из-за pass("some value"); он будет вызван.

  2. Во втором примере вы ничего не передаете функции a, поэтому pass будет undefined.И когда вы используете синтаксис вызова функции для любой переменной, которая не является функцией, она выдаст ошибку.

  3. В третьем примере вы пытаетесь передать переменную argument в функцию a.Но argument не существует, поэтому выдает ошибку.

0 голосов
/ 28 июня 2019

Добро пожаловать.

1: Здесь вы передали функцию в качестве аргумента. Функция выполняет console.log значения, предоставленного функцией a .

2: здесь вы не предоставили никакой функции. Вы звоните a(). Для a() нет определения. Существует только определение для a(pass). Вы должны вызвать это с параметром. Если вы этого не сделаете, это как если бы вы позвонили a(undefined). Теперь попытка undefined('some value') выдает ошибку.

3: Вот что такое аргумент? удалите код function a() { } и увидите, что вы пытаетесь выполнить a(argument), но argument нигде не определен, и JS не может определить, что является аргументом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...