CoffeeScript CoffeeScrip 的 type 函数


本文整理自网络,侵删。

CoffeeScrip 的 type 函数

问题

你想在不使用typeof的情况下知道一个函数的类型。(要了解为什么typeof不靠谱,请参见 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

标签:CoffeeScript

相关阅读 >>

CoffeeScript 检测每个元素

CoffeeScript 归纳数组

CoffeeScript 工厂方法模式

CoffeeScript 创建 jquery 插件

CoffeeScript 删除数组中的相同元素

CoffeeScript 嵌入 javascript

CoffeeScript 创建一个不存在的对象字面值

CoffeeScript 定义数组范围

CoffeeScript 类变量和实例变量

CoffeeScript 替换子字符串

更多相关阅读请进入《CoffeeScript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...