找出prototypejs中对象的类

ind*_*man 4 javascript oop prototype prototypejs

我使用prototypejs Class API进行基于类的OOP.

有没有办法获取对象的类名?

例如:

var myDog = new Dog();
myDog.getClassName() //Should return "Dog"
Run Code Online (Sandbox Code Playgroud)

Joã*_*lva 5

如果您使用Prototypejs create()函数来创建类,则需要存储一个附加属性来保存类的名称,因为对名为class 的唯一引用Dog是您为其分配结果的变量名create():

var Dog = Class.create({
  className: "Dog",

  initialize: function() {
  }
});

var myDog = new Dog();
console.log(myDog.className); // "Dog"
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您使用以下内容定义您的类:

function Dog() {
}
Run Code Online (Sandbox Code Playgroud)

然后,你可以使用Object#constructor:

myDog.constructor.name; // "Dog"
Run Code Online (Sandbox Code Playgroud)