4

我将prototypejs Class API 用于基于类的OOP。

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

例如:

var myDog = new Dog();
myDog.getClassName() //Should return "Dog"
4

1 回答 1

5

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

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

  initialize: function() {
  }
});

var myDog = new Dog();
console.log(myDog.className); // "Dog"

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

function Dog() {
}

然后,您可以使用Object#constructor

myDog.constructor.name; // "Dog"
于 2012-09-05T22:27:41.033 回答