当你们已经把js的语言基础理解了,而后可以写出一些简单的例子了,这个时候基本上达到了一年工做经验的水平,而本身可以独立的写一些小功能,完成一些小效果,或者临摹修改一些比较复杂的插件的时候差很少就是两年工做经验的水平,这个时候不少js开发者会陷入迷茫或者不自知,基本上会出现两种状况:java
1.js好像就这么多东西,公司给我功能我都能写出来写不出来的网上找插件也能看懂,可是本身不会写,想学习又不知道学什么。算法
2.好像js就那么点儿东西,公司给个人需求我都能写出来,js很简单。可是好像js大牛跟我又离的很远,到底我行不行?typescript
这个时候呢基本上我会推荐学生了解三个东西:编程
1.js编程方式设计模式
2.设计模式函数式编程
3.算法函数
每个东西都会开阔你的思路带你进入一个全新的世界。学习
好咱们从这节课开始咱们就先从js编程方式提及。prototype
说到编程方式,js经常使用的有三种。插件
1.面向过程
2.函数式编程
3.面向对象编程
第二个并非你们理解的那样,咱们先说1,3.
举个现实例子就明白了。
手动炒菜用的是面向过程式编程,菜就是全局变量,你经过一步一步的修改全局变量,进而影响周边代码,最后产出想要的结果。这个就是面向过程的思想,优势是复合人类基础的思惟方式,简单易学,缺点是当事情复杂的时候面向过程步骤太多很难编写和维护。
用高压锅炖排骨就是面向对象是编程,你并不知道高压锅怎么工做的,扔进去食材,点击一个炖排骨按钮调用高压锅的功能,等着吃就好了。优势是大型复杂程序会变的简单,缺点是若是只是简单的逻辑用面向对象显得麻烦,你煮方便面确定不用高压锅。
多说一句函数是编程是js很是强大也是我最喜欢的,之后再说,咱们先说面向对象编程。
仍是类比现实生活,对象就是你女友,你为何让她当你女友无非两方面。
属性(长得咋样、人品咋样):长头发、大眼睛、个子高、皮肤白、爱旅游
方法(能干什么、能力如何):炒菜、作饭、洗衣服、赚钱
js世界里面对象也是由这两样组成的:属性和方法,不墨迹上个例子
var girlFriend = { //属性: hair:"long", eye:"big", hobby:"travel", //方法 cook:function(){}, wash:function(){} };
java等语言是典型的面向对象编程,特色是强大复杂,太特么复杂,你们知道这件事就行。不知道建议你去看看typescript代码,体会下。
js 是原型方式,简单、灵活。听不懂不要紧,先把这个例子记住,更常见的定义对象的方式。
//属性加载构造函数上 function GirlFriend() { //属性: hair:"long", eye:"big", hobby:"travel", } //方法加在原型上 GrilFriend.prototype.cook = function(){};
先记住会用就好了后续的课程我会讲什么是原型,以及原型继承等特色。