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