阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      CoffeeScript CoffeeScrip 的 type 函数

      CoffeeScrip 的 type 函数

      问题

      你想在不使用typeof的情况下知道一个函数的类型。(要了解为什么typeof不靠谱,请参见 [](http://javascript.crockford.com/remedial.html)[http://javascript.crockford.com/remedial.html](http://javascript.crockford.com/remedial.html)。)

      解决方案

      使用下面这个 type 函数

      type = (obj) ->
          if obj == undefined or obj == null
            return String obj
          classToType = {
            '[object Boolean]': 'boolean',
            '[object Number]': 'number',
            '[object String]': 'string',
            '[object Function]': 'function',
            '[object Array]': 'array',
            '[object Date]': 'date',
            '[object RegExp]': 'regexp',
            '[object Object]': 'object'
          }
          return classToType[Object.prototype.toString.call(obj)]
      

      讨论

      这个函数模仿了jQuery的$.type函数

      需要注意的是,在某些情况下,只要使用鸭子类型检测及存在运算符就可以不必检测对象的类型了。例如,下面这行代码不会发生异常,它会在 myArray 的确是数组(或者一个带有 push 方法的类数组对象)的情况下向其中推入一个元素,否则什么也不做。

      myArray?.push? myValue
      
      卖前端学习教程

      只需几十元,就能买到培训班的内部教程!开启高薪之路!

      零基础小白阿里P7的教程都有!

      同时长期收购所有培训班的前端教程

      目录
      目录