我决定探索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相同的是。
如果有人能解释为什么将函数分配给变量和全局对象,我会非常感激它能给出什么样的优势?我理解它是如何工作的,但我无法理解为什么需要这样做。
答案 0 :(得分:2)
执行var typeOf = this.typeOf
有3个目的。一种方法是在文件中使用一个小变量名,避免一直使用this.typeOf
,其次更重要的是避免在this
是其他内容的范围内混淆范围。使用this.typeOf
的第三个目的是将它导出到您所在的范围,并且MooTools导出到全局,例如浏览器中的window
对象。
函数.typeOf
为described in the docs,您可以将其视为比原始typeof
更有用的方法。看看这些不同之处:
:
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()
.