【问题标题】:MooTools 1.5.2 exploring typeOf and instanceOfMooTools 1.5.2 探索 typeOf 和 instanceOf
【发布时间】:2016-01-03 13:39:11
【问题描述】:

我决定探索 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 也是如此。

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

【问题讨论】:

    标签: javascript mootools


    【解决方案1】:

    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().中找到

    【讨论】:

    • 谢谢!现在我可以看到它在许多方面是如何有用的。绝对是它所做的最重要的事情是避免在范围内混淆范围。
    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2018-10-13
    • 1970-01-01
    • 2015-09-04
    • 2013-01-28
    • 1970-01-01
    • 2020-07-18
    • 2010-10-28
    相关资源
    最近更新 更多