THREE.Camera.prototype.lookAt <! - <() - </<是什么意思?

时间:2016-04-16 21:25:05

标签: javascript firefox three.js prototype

所以我一直在玩THREE.js并注意到一些奇怪的事情: 在Firefox中,当您打开开发人员控制台并输入camera.lookAt(假设您的相机名为camera)时,它会输出function THREE.Camera.prototype.lookAt</<()

现在我很好奇</<的含义及其来源,据我所知,这些在JavaScript函数名称中不是有效字符。到目前为止,我还没有看到或注意到这一点。我试图重现这一点,但没有成功。

1 个答案:

答案 0 :(得分:1)

有一些规则,根据FireFox为哪些匿名函数提供names来在控制台和调用堆栈中显示它们。函数lookAtanonymous

在FireFox中打开下面的代码,然后打开控制台并输入nonymous

<强>的index.html

<script>
     var nonymous = function() {
       return function() {
       }
     }();
</script>

控制台结果

> nonymous
< function nonymous</<()

更多信息:

  1. Nonymous: Function-Object Consumption Naming Algorithm Implementation

  2. Splash Wavefront 2011论文:Naming Anonymous JavaScript Functions,作者:Salman Mirghasemi,John J. Barton和Claude Petitpierre教授

  3. https://github.com/mozilla/gecko-dev/blob/master/js/src/vm/Debugger.cpp#L7720

  4. https://github.com/mozilla/gecko-dev/blob/master/js/src/doc/Debugger/Debugger.Object.md#accessor-properties-of-the-debuggerobject-prototype