Как использовать аргумент функции функции в реализации функции?

Вот как это описано в спецификации языка ECMAScript

. Вот соответствующая часть Array.prototype.map, как описано в §15.4.4.19 )

  • ...
  • 8 . Повторите, а k < len a) Пусть Pk будет ToString(k). b) Пусть kPresent является результатом вызова внутреннего метода [[HasProperty]] O с аргументом Pk. c) Если kPresent - true, то выполняет магию
  • ...

Поскольку в вашем массиве нет инициализированного члена, вызывающий, например, new Array (1337).hasOwnProperty (42), оценивается как false, поэтому условие на шаге 8.c не выполняется.

Однако вы можете использовать небольшой «взлом» для сделайте то, что хотите.

Array.apply(null, { length: 5 }).map(Number.call, Number) //[0, 1, 2, 3, 4]

Как это работает, вы объяснялись @Zirak

3
задан mkrieger1 5 March 2019 в 17:13
поделиться

1 ответ

Посмотрите на следующий код, он показывает, как вызывать функции так, как вы хотели бы их вызвать.

 #include <stdio.h>


/* Declaration of foo1 . It receives a specific function pointer foo2 and an integer. */
int foo1 (int (*foo2)(int), int a);

int cube(int number)
{
    return (number * number * number);
}

int square(int number)
{
    return (number * number);
}

int foo1 (int (*foo2)(int), int a)
{
    int ret;

    /* Call the foo2 function here. */
    ret = foo2(a);

    printf("Result is: %d\r\n", ret);

    return (ret);
}

int main()
{
    int a = 3;

    foo1(square, a);
    foo1(cube, a);

    return 0;
}
0
ответ дан Mazhar 5 March 2019 в 17:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: