如何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
。就是没有什么解决打印构造函数的名称。
答
CreateJS被缩小。这意味着为了使代码更小,许多不可直接访问的变量名称被缩短了。看看这个简单的例子。
let a = function(){}
let Closure = {
MyClass : a
}
let myInstance = new Closure.MyClass();
console.log(myInstance.constructor.name) // a
如果你只看着你会期望的Closure.MyClass
构造将是MyClass的最后两行,但你可以看到构造函数实际上是a
,因为那是name
Closure.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
还有,你可能能够完成你想要的其他方式,你可能得到创造性。或者你可以尝试使用库的未缩小版本。
然后可能是构造函数的名称是“a”:),这是有道理的,因为代码被缩小了 – codtex
@codtex你可以检查那里consturctor是'new createjs.Stage(“demoCanvas”)'。 –
如果它被缩小,是否有任何获取该构造函数的名称。 –