前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >徒手写一个es6代码库

徒手写一个es6代码库

作者头像
lilugirl
发布2019-05-28 16:36:12
4030
发布2019-05-28 16:36:12
举报
文章被收录于专栏:前端导学
代码语言:javascript
复制
mkdir demo
cd demo
npm init
npm install -g babel
npm install -g babel-cli
npm install --save-dev babel-preset-es2015-node5

在项目目录创建两个文件夹 functional-playground 和lib

代码语言:javascript
复制
mkdir functional-playground
mkdir lib

在lib目录下创建文件 es6-functional.js

代码语言:javascript
复制
const forEach = (array, fn) => {
  let i;
  for (i = 0; i < array.length; i++)
    fn(array[i])
}

export default forEach

在functional-playground目录下创建文件play.js

代码语言:javascript
复制
import forEach from '../lib/es6-functional'

var array = [1, 2, 3]
forEach(array, (data) => console.log(data))

执行命令

代码语言:javascript
复制
babel-node functional-playground/play.js --presets es2015-node5

执行结果如下

也可以将上述脚本写到package.json中

执行 npm run playground 命令可以查看到一样的结果

在es6-functional.js中定义更多的抽象函数

代码语言:javascript
复制
const forEach = (array, fn) => {
  let i;
  for (i = 0; i < array.length; i++)
    fn(array[i])
}

const forEachObject = (obj, fn) => {
  for (var property in obj) {
    if (obj.hasOwnProperty(property)) {
      fn(property, obj[property])
    }
  }
}

const unless = (predicate, fn) => {
  if (!predicate)
    fn()
}

export {
  forEach,
  forEachObject,
  unless
}

在 play.js 调用

代码语言:javascript
复制
import {
  forEach,
  forEachObject,
  unless
} from '../lib/es6-functional'

var array = [1, 2, 3]
forEach(array, (data) => console.log(data))

let object = {
  a: 1,
  b: 2
}
forEachObject(object, (k, v) => console.log(k + ":" + v))

forEach([1, 2, 3, 4, 5, 6, 7], (number) => {
  unless((number % 2), () => {
    console.log(number, " is even")
  })
})

执行 npm run playground 命令 查看结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档