CoffeeScript CoffeeScript 的 type 函數(shù)

2022-06-29 16:48 更新

CoffeeScript 的 type 函數(shù)

問題

你想在不使用typeof的情況下知道一個函數(shù)的類型。(要了解為什么typeof不靠譜,請參見 http://javascript.crockford.com/remedial.html。)

解決方案

使用下面這個type函數(shù)

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)]

討論

這個函數(shù)模仿了jQuery的$.type函數(shù)

需要注意的是,在某些情況下,只要使用鴨子類型檢測及存在運算符就可以不必檢測對象的類型了。例如,下面這行代碼不會發(fā)生異常,它會在myArray的確是數(shù)組(或者一個帶有push方法的類數(shù)組對象)的情況下向其中推入一個元素,否則什么也不做。

myArray?.push? myValue
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號