如何在 CreateJS 中打印对象名称

How to print object name in 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>

我试图在 create 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,因为那是 [ Closure.MyClass 提到的 constructor 函数的 =14=]。

也许你应该重新考虑你using/creating对象的方式。如果你有能力,那么在对象的构造函数中或在创建对象之后自己附加名称并引用该名称。

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

您还可以通过其他方式完成您想要的事情,您可能需要发挥创意。或者您可以尝试使用未缩小版本的库。