Javascript"课程"用`class`关键字声明不在global / window对象中声明

时间:2016-08-27 17:27:16

标签: javascript class ecmascript-6

Javascript"班级"用class关键字声明似乎不会出现在window对象中。我试图通过名称找到一个类对象,例如window['A']

<html><head><script type='text/javascript'>
    function A() {}
    console.log(A) // outputs function A
    console.log(window.A) // same
    console.log(window['A']) // same

    class B {}
    console.log(B) // outputs class/function B
    console.log(window.B) // undefined
    console.log(window['B']) // undefined
</script></head></html>

我在Chrome 52.0.2743.116和Firefox Developer 50.0a2(2016-08-27)中都有这种行为。

查看MDN article on the class keyword,它提到此类声明并未被提升并且#34;像函数声明一样,但这似乎是一个不同的问题。我查看了the specs但据我所知,这应该像一个函数。 (&#34; 7.让env成为正在运行的执行上下文的LexicalEnvironment.8。让状态为InitializeBoundName(className,value,env)。&#34;似乎是相关点)

有谁知道这是一个错误还是我错过了什么,这是设计的?如果是这样,是否有其他方式通过它的声明名称获得课程?

0 个答案:

没有答案