发表于: 2017-02-20 01:52:03

0 1102


今天完成的事情:

看了vue官方文档的组件、深入响应式原理、自定义指令、自定义过滤器;

看了js高程的引用类型、面向对象的程序设计、函数表达式;

规划了一下未来的计划;
明天计划的事情:

未来的计划:

还有十几天在修真院,准备面试:

数据类型、闭包、this、原型链、继承、ajax、http/https、angular依赖注入原理、浏览器的渲染机制、项目上线流程、gulp、grunt、Webpack

打算把高程全本看一遍,前七章若干遍;

犀牛书、忍者秘籍看一遍;

算法导论中前端可能用到的算法;
遇到的问题:

继承没有看的很明白; 
收获:

继承:

一.原型链继承
1.别忘记默认的原型;
2.确定原型和实例的关系:使用instanceof、isPrototypeOf方法;
3.谨慎的使用定义的方法;
4.原型链的问题:包含引用类型值的原型,属性会被所有实例共享;
二.借用构造函数
1.相对于原型继承优势:可以在子类型构造函数中向超类型构造函数传递参数;
2.构造函数模式存在的问题——方法都是在构造函数中定义,无法复用;
三.组合继承(伪经典继承)
将原型继承和借用构造函数的技术组合到一起;
四.原型式继承
1.借助原型基于已有对象创建新对象;ECMAScipt5新增了Object.create()方法规范了原型式继承,接受两个参数:一个用作新对象原型的对象和一个为新对象定义额外属性的对象;
五.寄生式继承
1.思路和寄生构造函数和工厂模式类似,创建一个用于封装继承过程的函数,在内部以某种方式来增强对象,再像真的做了所有工作一样返回对象;
2.使用寄生式继承来为对象添加属性,会由于不能做到函数复用而降低效率;这一点与构造函数模式类似;
六.寄生组合式继承
通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。基本思路:不必为了指定子类型的原型来调用超类型的构造函数,所需要的是超类型的一个副本。本质上,就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。



全局的this===window;

函数里直接return的this也是window,但是在严格模式里会是undefined;
作为对象方法的函数的this代表这个对象;
使用get、set方法也会指向该对象;
使用defineProperty也会指向该对象;
使用构造器会指向对应的原型;
通过bind函数可以改变this绑定的对象,第一个参数是this,后面的参数是参数;




返回列表 返回列表
评论

    分享到