Иными словами, где внутри функции хранится ссылка на объект этой функции?
Asked
Active
Viewed 802 times
1
-
1Вы, случайно, не забыли принять ответ, который я Вам дал? https://ru.stackoverflow.com/questions/889096/iefi-bind-context – Oct 04 '18 at 15:58
1 Answers
3
В arguments.callee, но использование этого свойства (callee) осуждается. Более того, при использовании "strict mode" обращение к arguments.callee вызывает ошибку.
function withName(a) {
console.log(a);
arguments.callee(2);
}
withName(1);
Свойство callee существует до сих пор исключительно по историческим причинам (ради сохранения обратной совместимости кода). Дело в том, что в более ранних версиях языка нельзя было создавать именованные функциональные выражения, поэтому для рекурсивного вызова безымянной функции приходилось получать объект для вызова (то есть ее саму) как раз из свойства callee. Сейчас хорошей практикой является обращение к функции непосредственно по ее имени.
smellyshovel
- 5,224