我决定研究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也是如此。
如果有人能解释为什么函数被分配给变量和全局对象,我将非常感激,它能带来什么好处?我明白它是如何工作的,但我只是不明白为什么要这么做。
发布于 2016-01-03 16:20:35
做var typeOf = this.typeOf有三个目的。一个是在文件中使用一个小变量名,避免一直使用this.typeOf,第二个也是更重要的是避免在this是其他东西的作用域中混合作用域。使用this.typeOf的第三个目的是将其导出到您所在的范围,并将MooTools导出到全局,例如浏览器中的window对象。
函数.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给出了一个更有价值的结果。类似的行为可以在。中找到
https://stackoverflow.com/questions/34577129
复制相似问题