MIP.util.fn

  1. MIP.util.fn
  2. window.MIP.util.fn

描述

MIP.util.fn 提供了一些函数式的工具函数

方法

throttle

  • 参数:
    • {Function} fn 需要节流的函数
    • {number} delay 延迟时间,默认为 10ms
  • 返回值:

    {Function}

    节流后的函数

  • 用法:

    函数调用节流,控制函数在 delay 时间执行一次,调用多次会顺延,在响应一些 DOM 的事件时很有用,如 resize, touchmove 的回调

    1. let fn = MIP.util.fn.throttle(function callback(event) {
    2. console.log('resize triggered')
    3. })
    4. window.addEventListener('resize', fn)

values [deprecated]

  • 参数:
    • {Object} obj
  • 返回值:

    {Array}

    返回该 Object 的所有 value

  • 用法:

    info

    请用 Object.values 代替

    获取 Object 的所有 value,和 Object.values 的效果一样

    1. // 返回值为 [1, 2]
    2. MIP.util.fn.values({a: 1, b: 2})

isPlainObject

  • 参数:
    • {Object} obj
  • 返回值:

    {boolean} 返回 object 是否为 plain object

  • 用法:

    判断 object 是否为 plain object

    1. // 返回 true
    2. MIP.util.fn.isPlainObject({a: 1})
    3. // 返回 false
    4. MIP.util.fn.isPlainObject(1)

extend [deprecated]

  • 参数:
    • {Object} target 目标 Object
    • {…Object} sources 源 Object
  • 返回值:

    {Object} 返回目标 Object

  • 用法:

    info

    请用 Object.assign 代替

    效果和 Object.assign 一样,把源 Object 的 key-value pairs 复制到目标 Object 中,优先级递增,如果 key 有重复,会进行覆盖

    此函数有副作用,目标 Object 会被修改

    1. // 返回值为 {a: 2, b: 2}
    2. MIP.util.fn.extend({a: 1}, {a: 2, b: 2})

pick

  • 参数:
    • {Object} obj 目标 Object
    • {Array.\} 需要挑选的 keys
  • 返回值:

    {Object.}

    根据 keys 挑选出来的 key-value pairs 组成的新 Object

  • 用法:

    从目标 Object 中根据 keys 数组挑选出一些值,组成新的 Object,并返回,此函数没有副作用

    1. let source = {a: 1, b: 2, c: 3}
    2. // 返回值为 {a: 1, c: 3}
    3. MIP.util.fn.pick(source, ['a', 'c'])

isString

  • 参数:
    • {string} string
  • 返回值:

    {boolean} 是否是 string

  • 用法:

    判断 string 是否为字符串

    1. // 返回 true
    2. MIP.util.fn.isString('aa')
    3. // 返回 false
    4. MIP.util.fn.isString(1)

del

  • 参数:
    • {Object} obj 目标 Object
    • {string} key 需要删除的属性
  • 用法:

    从目标 Object 删除某个属性

    1. let dest = {a: 1, b: 2}
    2. // dest 变为 {a: 1}
    3. MIP.util.fn.del(dest, 'b')

hasTouch

  • 返回值

    {boolean} 返回是否支持 touch 事件

  • 用法:

    判断是否支持 touch 事件

    1. // 如果是 PC 上,则为 false,如果是可触摸手机上,则为 true
    2. MIP.util.fn.hasTouch()

isCacheUrl [deprecated]

函数实现移到util 入口中