Javascript类声明范围混乱

时间:2017-09-04 21:20:20

标签: javascript scope

我在最新的Chrome控制台中运行以下代码。

我认为Test类将在root的范围内声明,因此我可以通过字符串访问构造函数,但事实并非如此。有人可以解释一下,如何使用'Test'创建新实例?

(() => {
  let root = this
  class Test {}
  console.log( root['Test'] )
})()

2 个答案:

答案 0 :(得分:1)

您可以将课程附加到(() => { this.Test = class Test { name() { return "Hi 5"; } } console.log('Name is ', new this['Test']().name()) console.log('Or using window ') console.log('Name is ', new window['Test']().name()) })(),因为默认情况下不附加课程。 然后,您将能够以对象属性的形式访问它。

见下面的代码:



.btn,.form-control{display: inline-block; width: auto;}




答案 1 :(得分:0)

(() => {
  let root = this;
  class Test {}
  this.Test = Test;
  console.log(root['Test'])
})()