Categories: CoffeeScript 教程

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
terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

6 天 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

2 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

2 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

3 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

4 周 ago