import enquireJs from 'enquire.js' // 引入监听屏幕变化的插件

export function isDef (v){ // 判断是否定义
  return v !== undefined && v !== null
}

/**
 * Remove an item from an array.
 */
export function remove (arr, item) { // 从数组中移除一个元素
  if (arr.length) {
    const index = arr.indexOf(item)
    if (index > -1) {
      return arr.splice(index, 1)
    }
  }
}

export function isRegExp (v) { // 判断是否是正则表达式
  return _toString.call(v) === '[object RegExp]'
}

export function enquireScreen(call) { // 监听屏幕变化
  const handler = {  // 定义一个对象
    match: function () { // 定义一个match方法
      call && call(true) // 如果call存在，调用call方法，并传入true
    },
    unmatch: function () { // 定义一个unmatch方法
      call && call(false) // 如果call存在，调用call方法，并传入false
    } 
  }
  enquireJs.register('only screen and (max-width: 767.99px)', handler)  // 监听屏幕变化
}

const _toString = Object.prototype.toString // 获取Object的toString方法
