如何找到使用 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
两次,因为 myDog
是 Dog
的一个实例,也是 Mammal
.
的一个实例
我正在使用 "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
两次,因为 myDog
是 Dog
的一个实例,也是 Mammal
.