При доступе к объекту caller
любых функций Math
(sin, cos, ..) возникает следующая ошибка.anyDefinedFunction.caller имеет значение null, но почему Math.anyMathFunction.caller выбрасывает ошибку?
Uncaught TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.
Но, ссылаясь на то же свойство над другими функциями, как window.alert
или любые пользовательские функции возвращает null
.
Math.sin.caller // ERROR
window.alert.caller // null
В чем причина такого поведения? Какова цель этого ограничения?
функция Неа, Math.sin использует строгий режим в его определении. Вот почему ошибка поднимается. Но почему другие функции, такие как window.alert, не определены в строгом режиме? –
исправлено, спасибо. не нашел хорошего ответа на ваш вопрос, интересно! –