摘要: 1.js的执行顺序,先同步后异步 2.异步中任务队列的执行顺序: 先微任务microtask队列,再宏任务macrotask队列 3.调用Promise 中的resolve,reject属于微任务队列,setTimeout属于宏任务队列 注意以上都是 队列,先进先出。 微任务包括 `process. 阅读全文
posted @ 2015-01-06 22:57 Tim带你转AI测试 阅读(585) 评论(0) 推荐(0)
摘要: 文以《JavaScript高级程序设计》上的内容为骨架,补充了ES6 Class的相关内容,从我认为更容易理解的角度将继承这件事叙述出来,希望大家能有所收获。 1. 继承分类 先来个整体印象。如图所示,JS中继承可以按照是否使用object函数(在下文中会提到),将继承分成两部分(Object.cr 阅读全文
posted @ 2015-01-03 20:22 Tim带你转AI测试 阅读(285) 评论(0) 推荐(0)
摘要: 一、原型链继承 方式1: 原型链继承 (1)流程: ​ 1、定义父类型构造函数。 ​ 2、给父类型的原型添加方法。 ​ 3、定义子类型的构造函数。 ​ 4、创建父类型的对象赋值给子类型的原型。 ​ 5、将子类型原型的构造属性设置为子类型。 ​ 6、给子类型原型添加方法。 ​ 7、创建子类型的对象: 阅读全文
posted @ 2015-01-02 18:09 Tim带你转AI测试 阅读(270) 评论(0) 推荐(0)
摘要: 分别介绍原型链继承、call/apply继承(借用构造函数继承)、组合继承、原型式继承、寄生式继承、寄生组合式继承 1. 原型链继承 核心:将父类的实例作为子类的原型 function SuperType(){ this.property = true; } SuperType.prototype. 阅读全文
posted @ 2015-01-01 16:47 Tim带你转AI测试 阅读(208) 评论(0) 推荐(0)
摘要: Array.prototype 先记住一句话——每一个函数,都有一个prototype属性——每一个函数,无论是你自定义的,还是系统内置的 这里打印出来的fn.prototype是一个对象,只有一个constructor属性,指向该函数自身,即 以上是自定义的函数,数组构造函数Array也是一个函数 阅读全文
posted @ 2014-12-31 10:07 Tim带你转AI测试 阅读(170) 评论(0) 推荐(0)
摘要: new运算符工作原理 阅读全文
posted @ 2014-12-30 17:42 Tim带你转AI测试 阅读(101) 评论(0) 推荐(0)
摘要: 1. 图解原型链 1.1 “铁三角关系”(重点) function Person() {}; var p = new Person(); 这个图描述了构造函数,实例对象和原型三者之间的关系,是原型链的基础:(1)实例对象由构造函数new产生;(2)构造函数的原型属性与实例对象的原型对象均指向原型(3 阅读全文
posted @ 2014-12-29 17:01 Tim带你转AI测试 阅读(282) 评论(0) 推荐(0)
摘要: 原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性constructor,它指向函数对象 给原型对象添加属性(一般都是添加方法) 作用:函数的所有实例对象自动拥有原型中 阅读全文
posted @ 2014-12-28 12:03 Tim带你转AI测试 阅读(178) 评论(0) 推荐(0)
摘要: 原型和原型链是 JS 中不可避免需要碰到的知识点,本文使用图片思维导图的形式缕一缕原型、原型链、实例、构造函数等等概念之间的关系。 Constructor 构造函数 首先我们先写一个构造函数 Person,构造函数一般为了区别普通函数要求首字母大写: prototype 原型 原型指的就是一个对象, 阅读全文
posted @ 2014-12-27 22:07 Tim带你转AI测试 阅读(197) 评论(0) 推荐(0)
摘要: 一、工厂模式 流程: 定义一个函数,函数返回对象。 适用场景: 需要创建多个对象,都是Object类型。 优点:完成了返回一个对象的要求。 缺点: 对象没有一个具体的类型,无法通过constructor识别对象, 都是Object类型。多个实例的sayName方法都是实现一样的效果,但是却存储了很多 阅读全文
posted @ 2014-12-25 14:55 Tim带你转AI测试 阅读(235) 评论(0) 推荐(0)