如何找到使用 Dojo 声明创建的 class 的类型?

How to find the type for a class created with Dojo declare?

我正在使用 "class" 在 Dojo 中使用 declare 定义创建一个对象。

我需要检查该对象的类型(class 名称)。

目前我在原型中使用 属性 declaredClass

declaredClass 是检查类型的正确方法吗? Dojo 有没有更好的方式或方法?

 define(["dojo/_base/declare", "my/Person"], function(declare, Person){
      return declare(Person, {
        constructor: function(name, age, residence, salary){
          // The "constructor" method is special: the parent class (Person)
          // constructor is called automatically before this one.

          this.salary = salary;
        },

        askForRaise: function(){
          return this.salary * 0.02;
        }
      });
    });

这取决于您要尝试做什么。如果你需要检查 class 是否是某种类型,你可以使用以下:

myObject.isInstanceOf(Person);

例如:

require(["dojo/_base/declare"], function(declare) {
    var Mammal = declare(null, {
        constructor: function(name) {
            this.name = name;  
        },
        sayName: function() {
            console.log(this.name);
        }
    });
    var Dog = declare(Mammal, {
        makeNoise: function() {
            console.log("Waf waf");
        }
    });

    var myDog = new Dog("Pluto");
    myDog.sayName();
    myDog.makeNoise();

    console.log("Dog: " + myDog.isInstanceOf(Dog));
    console.log("Mammal: " + myDog.isInstanceOf(Mammal));
});

这将 return true 两次,因为 myDogDog 的一个实例,也是 Mammal.

的一个实例