THREE.Camera.prototype.lookAt </ <() - Что означает </ <?
Поэтому я немного поигрался с THREE.js и заметил нечто странное: в Firefox, когда вы открываете консоль разработчика и вводите camera.lookAt
(если ваша камера называется camera
), это выводит function THREE.Camera.prototype.lookAt</<()
,
Теперь мне любопытно, что </<
означает и откуда это, насколько я знаю, это недопустимые символы в именах функций JavaScript. До сих пор я не видел и не заметил этого раньше. Я пытался воспроизвести это, но безуспешно.
1 ответ
Существуют правила, согласно которым FireFox дает names
для анонимных функций для отображения их в консоли и в стеке вызовов. И функция lookAt
является анонимным
Откройте код ниже в FireFox, затем откройте консоль и введите nonymous
,
index.html:
<script>
var nonymous = function() {
return function() {
}
}();
</script>
консольный результат:
> nonymous
< function nonymous</<()
Больше информации:
Nonymous: Реализация алгоритма именования потребления объекта-функции
Документ Splash Wavefront 2011: именование анонимных функций JavaScript, автор Салман Миргасеми, Джон Дж. Бартон и профессор Клод Петитпьер
https://github.com/mozilla/gecko-dev/blob/master/js/src/vm/Debugger.cpp#L7720