MooTools 1.5.2 探索 typeOf 和 instanceOf

MooTools 1.5.2 exploring typeOf and instanceOf

我决定探索 MooTools javascript 核心文件以了解此类 javascript 框架的工作原理,不幸的是 javascript 中有很多东西让我很困惑,因为我不不知道为什么要那样做特定的功能。

在 MooTools Core javascript 文件的开头我看到了两个函数:typeOf 和 instanceOf。不明白这两行代码的用途:

var typeOf = this.typeOf = function(item){
var instanceOf = this.instanceOf = function(item, object){

为什么将函数分配给 typeOf 变量和 this.typeOf,为什么不只分配给 var typeOf 或 this.typeOf?同样的事情是 instanceOf.

如果有人能解释为什么将函数分配给变量和全局对象有什么好处,我将不胜感激?我明白它是如何工作的,但我就是不明白为什么需要这样做。

var typeOf = this.typeOf 有 3 个目的。一是在文件中使用一个小变量名并避免一直使用 this.typeOf,第二个也是更重要的是避免在 this 是其他东西的范围内混淆范围。第三个目的,使用this.typeOf是将其导出到你所在的范围,MooTools导出到全局,即浏览器中的window对象。

函数 .typeOfdescribed in the docs,您可以将其视为比原生 typeof 更有用的方法。看看这些差异:

在 MooTools 中:

typeOf([]) // gives you "array"
typeOf({}) // gives you "object"
typeOf(document.createElement('div')) // gives you "element"

原生 JavaScript

typeof [] // gives you "object"
typeof {} // gives you "object"
typeof document.createElement('div') // gives you "object"

所以 MooTools 给出了更有价值的结果。在 .instanceOf().

中可以找到类似的行为