MooTools 1.5.2探索typeOf和instanceOf

时间:2016-01-03 13:39:12

标签: javascript mootools

我决定探索MooTools javascript核心文件,以了解这些javascript框架是如何工作的,遗憾的是javascript中有很多东西让我感到困惑,因为我不知道为什么特定功能是这样做的。< / p>

在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相同的是。

如果有人能解释为什么将函数分配给变量和全局对象,我会非常感激它能给出什么样的优势?我理解它是如何工作的,但我无法理解为什么需要这样做。

1 个答案:

答案 0 :(得分:2)

执行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().

中可以找到类似的行为