如何CreateJS

如何CreateJS

问题描述:

打印对象名称

如何CreateJS

var stage = new createjs.Stage("demoCanvas"); 
 
console.log(stage.constructor.name);//prints a
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script> 
 
<canvas id="demoCanvas" width="500" height="300"> 
 
     alternate content 
 
</canvas>

我试图创建JS打印的构造函数的名字,但它是印刷a。就是没有什么解决打印构造函数的名称。

+0

然后可能是构造函数的名称是“a”:),这是有道理的,因为代码被缩小了 – codtex

+0

@codtex你可以检查那里consturctor是'new createjs.Stage(“demoCanvas”)'。 –

+0

如果它被缩小,是否有任何获取该构造函数的名称。 –

CreateJS被缩小。这意味着为了使代码更小,许多不可直接访问的变量名称被缩短了。看看这个简单的例子。

let a = function(){} 
 

 
let Closure = { 
 
    MyClass : a 
 
} 
 

 
let myInstance = new Closure.MyClass(); 
 

 
console.log(myInstance.constructor.name) // a

如果你只看着你会期望的Closure.MyClass构造将是MyClass的最后两行,但你可以看到构造函数实际上是a,因为那是nameClosure.MyClass提到的constructor函数。

也许你应该重新思考你使用/创建对象的方式。如果您有能力,则可以在对象的构造函数中或者在创建对象之后自己附加名称,并引用该名称。

let a = function(){ this.name = "MyClass" } 
 

 
let Closure = { 
 
    MyClass : a 
 
} 
 

 
let myInstance = new Closure.MyClass(); 
 

 
myInstance.name2 = "MyClass"; // alternative method 
 

 
console.log(myInstance.name) // MyClass 
 
console.log(myInstance.name2) // MyClass

还有,你可能能够完成你想要的其他方式,你可能得到创造性。或者你可以尝试使用库的未缩小版本。