В чем разница между этими функциями, созданными функцией Function?
1.var f = new Function("a", "b", "return a+b")
2.var f2 = Function("a", "b", "return a+b")
f
а также f2
оба являются анонимной функцией. f(1,2)
а также f2(1,2)
оба возвращаются 3
, Так есть ли какая-то реальная внутренняя разница между ними? Есть ли Function
внутренне вернуть функциональный объект? Отличие от использования Function
как конструкторnew Function(...)
?
1 ответ
Из спецификации ECMAScript 5.1:
Когда функция вызывается как функция, а не как конструктор, она создает и инициализирует новый объект Function. Таким образом, вызов функции Function(…) эквивалентен выражению создания объекта new Function(…) с теми же аргументами.