Jason

Results 47 issues of Jason

### 原型 关于创建对象,最普通的办法就是工厂模式,工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)。 #### 构造函数模式 一个简单的构造函数如下: ```JS function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.sayName = function() {alert(this.name); }; } ``` 使用构造函数的主要问题,就是每个方法都要在每个实例上重新创建一遍,如上每个实例都有一个名为 sayName() 的方法,但那两个方法不是同一个...

JavaScript

每当收到候选人简历中有 VUE 的免不了提问“如何实现数据的双向绑定”,往往很多人都是浅尝辄止,简单来说,就是通过以下步骤实现双向绑定: - 监听器 Observer,用来劫持所有属性变动,如果有则通知订阅者 - 订阅者 Watcher,收到属性的变化通知并执行相应的函数,从而更新视图 所以 VUE 双向绑定关键的一环就是数据劫持(Vue 2.x 使用的是 Object.defineProperty(),而 Vue 在 3.x 版本之后改用 Proxy 进行实现),数据劫持即在访问或修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作如修改返回结果,以下专门梳理一下 Javascript 的数据劫持。 ### Object.defineProperty 通过 Object.defineProperty() 来劫持对象属性的 setter 和...

JavaScript

![ast](https://raw.githubusercontent.com/JTangming/blog/master/images/JS/ast.jpg)

enhancement

> 本文翻译的文章链接:https://levelup.gitconnected.com/a-recap-of-frontend-development-in-2019-1e7d07966d6c > 在即将过去的 2019 年,前端世界持续突飞猛进,本文主要回顾了web前端开发的主要事件,新闻以及未来趋势。 ### 2019 最受欢迎的框架或库下载统计 React 依旧保持遥遥领先的姿态并且还在持续增长,jQuery 占据在第二的位置(居然有这种事)。紧随其后的是 Angular 和 Vue,同样拥有庞大的用户群体。Svelte 在过去的一年中吸引了不少的注意力,但是还挣扎着能否生存下去。 ![download in past year](https://miro.medium.com/max/2188/1*n2P26JhioTkWaRYBDzHhGA.png) ### WebAssembly 成为连接 HTML,CSS 和 JavaScript 的 Web 第四种语言 WebAssembly...

duplicate[转载]
翻译

[7-days-nodejs](https://nqdeng.github.io/7-days-nodejs/)

### 二叉树特点 - 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点 - 左右子树是有顺序的,次序不能任意颠倒 - 即使树中某结点只有一棵子树,也要区分它是左子树还是右子树 - 在二叉树的第 i 层上最多有 2^i-1 个节点(i >=1) ### 满二叉树 在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,则为满二叉树 ### 完全二叉树 对于具有 n 个节点的二叉树,对于任何一个编号 i (1 快速记忆法: 前序就是**父节点->左子树->右子树**,中序是**左子树->父节点->右子树**,后序是**左子树 -> 右子树 ->父节点**...

数据结构与算法

**TODOS:** - 贪心算法(必学) - 启发式搜索算法:A*寻路算法(了解) - 地图着色算法、N 皇后问题、最优加工顺序 - 旅行商问题 -

**递归算法是一种直接或者间接调用自身函数或者方法的算法。** 递归算法的实质是把问题分解成小规模的同类问题,这些同类问题作为子问题递归调用来表示问题的解。特点如下: - 一个问题的解可以分解为几个子问题的解 - 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 - 存在递归终止条件,即存在递归出口 下面通过爬台阶问题来理解一下递归算法,问题描述:一个人爬楼梯,每次只能爬1个或2个台阶,假设有n个台阶,那么这个人有多少种不同的爬楼梯方法? 套用以上的递归特点,思考如下:【问题拆分】可以根据第一步的走法把所有走法分为两类: - 第一类是第一步走了 1 个台阶 - 第二类是第一步走了 2 个台阶 所以 n 个台阶的走法就等于先走 1 阶后,n-1 个台阶的走法 ,然后加上先走 2 阶后,n-2 个台阶的走法。 用公式表示就是: ```...

数据结构与算法

**todos:** - 图的表示:邻接矩阵和邻接表 - 遍历算法:深度搜索和广度搜索(必学) - 最短路径算法:Floyd,Dijkstra(必学) - 最小生成树算法:Prim,Kruskal(必学) - 实际常用算法:关键路径、拓扑排序(原理与应用) - 二分图匹配:配对、匈牙利算法(原理与应用) - 拓展:中心性算法、社区发现算法(原理与应用) 参考: - [漫画:什么是 “图”?(修订版)](https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/4JEHZWanGtsQHYrZ0MDq7Q) - [漫画:深度优先遍历 和 广度优先遍历](https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/WA5hQXkcACIarcdVnRnuiw) - [漫画:图的 “最短路径” 问题](https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/gjjrsj95X4w7QdWBlAKnaA) - [漫画:Dijkstra 算法的优化](https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/ALQntqQJkdWf4RbPaGOOhg)...