摘要:
与大部分面向对象语言不同,ES6之前并没有引入类(class)的概念,JavaScript并非通过类而是直接通过构造函数来创建实例。在介绍原型和原型链之前,我们有必要先复习一下构造函数的知识。 阅读全文
摘要:
this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。对于那些没有投入时间学习this机制的JavaScript开发者来说,this的绑定一直是一件非常令人困惑的事。 阅读全文
摘要:
闭包(closure)是 Javascript 语言的一个难点,面试时常被问及,也是它的特色,很多高级应用都要依靠闭包实现。本文尽可能用简单易懂的话,讲清楚闭包的概念、形成条件及其常见的面试题。 阅读全文
摘要:
在 javascript 中有不同的方法来复制对象,如果你还不熟悉这门语言的话,复制对象时就会很容易掉进陷阱里,那么我们怎样才能正确地复制一个对象呢?
读完本文,希望你能明白:
什么是深/浅拷贝,他们跟赋值有何区别?
深/浅拷贝的实现方式有几种? 阅读全文
摘要:
首先我们要消除一个常见的误解,webpack是一个模块打包工具(module bundler),它不是一个任务执行工具,任务执行器是用来自动化处理开发中常见任务的,例如检查(lint),构建(build),测试(test)等。相对于打包器,任务执行器所面对的逻辑问题更为上层,你可以使用上层的工具来管理整个持续集成(CI),而把打包的部分交给webpack。 阅读全文
摘要:
技术发展日新月异,所以 Web 开发人员也需要及时了解行业最新的发展趋势。 阅读全文
摘要:
`webpack`对应的关键词是模块化,它的主要任务就是打包和管理模块,所以首先需要明确的概念就是`webpack`之所以关联自动化测试,是因为**它能够为测试脚本提供模块管理的能力**,本质上来讲,是将`webpack`的打包功能嵌入了自动化测试框架,而不是将自动化测试框架作为插件集成进了`webpack`,理解这个区别是非常关键的。 阅读全文
摘要:
tapable是webpack的核心框架(4.0以上版本的API已经发生了变化),是一个基于事件流的框架,或者叫做发布订阅模式,或观察者模式,webpack的整个生命周期及其开放的自定义插件系统都离不开tapable的支持,研究其运行原理是阅读webpack源代码的第一步。官方仓库master分支的代码是经过ES6重构的,模块化拆分非常细,且加入了很多非核心逻辑,阅读难度较大。建议先从官方仓库中0.2版本的分支开始学习,整个源码只有400行,相对容易理解。 阅读全文
摘要:
写代码的时候总有一些东西是会重复出现的,次数多了你就会想找找捷径了。这类问题中有很大一部分解决起来甚至连库都不用装。此文中就是作者多年来收集的 25 个捷径和小技巧。 阅读全文
摘要:
`plugin`机制是`webpack`中另一个核心概念,它基于事件流框架`tapable`,你可以参考浏览器环境中的*【DOM事件模型】*,*【SPA模型中的生命周期钩子】*或是node环境中的*【EventEmitter模块】*来理解其作用。`plugin`系统提供给开发者监听`webpack`生命周期并在特定事件触发时执行指定操作的能力。 阅读全文