MooTools 有自己的instanceOf(instance, Type)
功能。
我只能假设它与 Javascript 的本机instanceof
运算符有些不同,但我似乎无法弄清楚是什么。
谁能解释该instanceOf()
功能的区别或目的?
MooTools 有自己的instanceOf(instance, Type)
功能。
我只能假设它与 Javascript 的本机instanceof
运算符有些不同,但我似乎无法弄清楚是什么。
谁能解释该instanceOf()
功能的区别或目的?
instanceOf
与之相辅相成的typeOf
是内部 MooTools 函数,它们在类型遍历方面比它们的原生函数做得更好。
typeOf 在这方面稍微有用:
typeof []; // object
typeOf([]); // array
typeof new Date(); // object
typeOf(new Date()); // date
instanceOf 主要用于 Class,尽管它也适用于 Types 构造函数。
例如。
var foo = new Class(),
bar = new Class({
Extends: foo
});
var foobar = new bar();
instanceOf(foobar, bar); // true
// but also due to Extends prototype chain and the constructor:
instanceOf(foobar, foo); // true
// as well as standard behaviour like
instanceOf([], Array); // true
instanceOf(4, Number); // true vs 4 instanceof Number == false
查看源代码: https ://github.com/mootools/mootools-core/blob/master/Source/Core/Core.js#L47-58
您可能会注意到 mootools 中的许多类型的构造函数都装饰了对象以简化鸭子类型,因此 typeOf 和 instanceOf 可以处理实际有意义的结果。
另请阅读mootools 类型功能
至少:
> "" instanceof String
false
> instanceOf("", String)
true