js实现排序算法
冒泡排序 > 数组中有 n 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一个最大的数放在最后面;那么经过 n-1(数组的 length - 1) 轮,就完成了所有数的排序。 function bubbleSort(arr) { // 循环n-1轮 for (let i = 0; i < arr.l ...
Object.defineProperty()的使用
Object.defineProperty(),它的作用是可以通过该API直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。Vue框架内部大量使用了此API为对象定义属性,其响应式原理也是通过此API自定义setter与getter而完成的。 在平时的业务开发中,Object.defineProperty()基本上使用不到,因为在对象上定义一个新属性直接通 ...
Vue的全局API【Vue源码学习】
Vue框架提供了很多全局的API、例如Vue.extend()、Vue.nextTick()、Vue.component()、Vue.filter()、Vue.use()等等,通过这些API我们可以轻松的完成一些工作。这篇文章我们通过源码方式去理解他们的实现原理。 全局API初始化 全局API的初始化其实是在/src/core/index.js文件里,其中执行 ...
Vue的mergeOptions函数分析-下【Vue源码学习】
上篇文章分析了mergeOptions函数的主要逻辑,最后知道是分别遍历俩个选项对象都去执行mergeField函数,其中mergeField函数其实是根据不同的key值来获取到相应的合并策略,从而执行真正的合并。接下来我们主要分析下Vue针对不同的内部选项实施的合并策略 defaultStrat 我们再看一下mergeField函数,当strats[key]不存在时,会采 ...
Vue的mergeOptions函数分析-上【Vue源码学习】
Vue的mergeOptions函数的主要作用是用于合并选项(将俩个选项对象合并成一个),它是用于实例化和继承的核心函数。这也是为什么我们要去分析它。并且与函数相关的选项合并策略也都在一个文件里,定义在/src/core/util/options.js文件中。 使用场景 因为Vue的核心代码都是放在src文件夹下,所以我们可以在src目录下全局搜索下mergeOptions的 ...