Почему после функции есть 2 скобки - PullRequest
0 голосов
/ 17 октября 2019
function sample(banana)
       {return new Function('return ' + banana)() }

Почему после функции указано 2 скобки?

Является ли первая скобка аргументом для вновь созданной функции.? Что делают вторые скобки?

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Это может помочь подумать об этом в отдельных шагах:

function sample(banana) {

  // Create a new function that can be invoked later
  var myNewFunc = new Function('return ' + banana)

  // Invoke the function
  var result = myNewFunc()

  return result

}

Теперь начните удалять лишние шаги.

Сначала верните результат вызванной функции без сохранения в отдельной переменной:

function sample(banana) {

  // Create a new function that can be invoked later
  var myNewFunc = new Function('return ' + banana)

  // Invoke the function and return the result
  return myNewFunc()

}

Теперь вы можете удалить переменную, в которой хранится функция:

function sample(banana) {

  // Create a new function and invoke it immediately
  return new Function('return ' + banana)()

}
0 голосов
/ 17 октября 2019

Вы можете вызвать функцию с круглыми скобками ()

x = new Function('return 0');
console.log(x());


//...is same as

console.log(new Function('return 0')())
...