Javascript MooTools 1.5.2探索类型和实例

Javascript MooTools 1.5.2探索类型和实例,javascript,mootools,Javascript,Mootools,我决定研究MooTools javascript核心文件,以了解此类javascript框架是如何工作的,不幸的是,javascript中有很多东西让我很困惑,因为我不知道为什么特定的函数是这样生成的 在MooTools核心javascript文件的开头,我看到了两个函数:typeOf和instanceOf。我不明白这两行代码的目的: var typeOf = this.typeOf = function(item){ var instanceOf = this.instanceOf = fun

我决定研究MooTools javascript核心文件,以了解此类javascript框架是如何工作的,不幸的是,javascript中有很多东西让我很困惑,因为我不知道为什么特定的函数是这样生成的

在MooTools核心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
有三个目的。一个是在文件中使用一个小的变量名,避免一直使用
this.typeOf
,第二个也是更重要的是避免在
this
是其他内容的范围内混淆作用域。使用
this.typeOf
的第三个目的是将其导出到您所在的范围,并将MooTools导出到全局,例如浏览器中的
窗口
对象

函数
.typeOf
是,您可以将其视为比本机
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提供了一个更有价值的结果。类似的行为可以在

中找到,谢谢!现在我可以看到它在许多方面是多么有用。当然,它所做的最重要的事情是避免在一个范围内混淆范围。