概述

当大家已经把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(){};

先记住会用就行了后续的课程我会讲什么是原型,以及原型继承等特点。

体验javascript之美6:如果你觉得什么都会了或者不知道js学什么了看这里-面向对象编程的更多相关文章

  1. 体验javascript之美第五课 五分钟彻底明白 匿名函数自执行和闭包

    通过文你将学到: 1.闭包是怎么回事儿? 2.闭包的原理和在jquery中的应用 3.从一到面试题彻底理解闭包和垃圾回收机制 4.闭包在jquery中的应用 概述 经常听到闭包这个词儿,或者匿名函数自 ...

  2. JavaScript学习总结【8】、面向对象编程

    1.什么是面向对象编程 要理解面向对象,得先搞清楚什么是对象,首先需要明确一点这里所说的对象,不是生活中的搞男女朋友对象,面向对象就是面向着对象,换在代码中,就是一段代码相中了另一段代码,自此夜以继日 ...

  3. JavaScript之美读书笔记一

    前两天去图书馆借了一本<JavaScript之美>,在书架上无意中看到的,想着那就看看吧. 第一章 原型 有些JavaScript爱好者宣称JavaScript是一种基于原型而不是面向对象 ...

  4. 闭包初体验 -《JavaScript面向对象编程指南》

    下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...

  5. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  6. 从Prototype学习JavaScript面向对象编程

    概述 JavaScript是一种基于对象的编程语言.它是灵活的,既有面向过程(也就是面向函数)的编程,也有面向对象的编程.因此我称它是基于对象的编程语言. 对于JavaScript的面向过程的编程特性 ...

  7. 老生常谈: Javascript 面向对象编程初探(一)--- 封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

  8. 深入解读JavaScript面向对象编程实践

    面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术.对JavaScript而言,其核心是支持面向对象的,同时它也提供了强大灵活的基于原型的面向对象编程能力 ...

  9. JavaScript学习笔记(十六)——面向对象编程

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

随机推荐

  1. Python:对元组使用关键字in

    如果in的左边是个含有多个元素的元组对象 例如 ('a','b') in L 那么L在什么情况下,这个式子会输出True呢? 答案是,L中必须也有一个和想要查找的元组一模一样的元组才行,比如: L=[ ...

  2. C# HttpClient类库

    示例代码: 1 using System.Net.Http; 2 using System.Net.Http.Headers; 3 using System.Threading.Tasks; 4 5 ...

  3. VirtualBox 桥接模式

    网桥网络配置 以下内容来自:http://www.jianshu.com/p/a4dbdb40b72b 特点 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间可以ping通 3.虚拟机可以ping ...

  4. php7废弃mcrypt加密,使用openssl替换

    概要: php从7.0升级到7.1废弃了一个扩展,即mcrypt扩展,虽然安装上扩展也能正常使用,但是会发出警告,告诉我们mcrypt相关方法已经被废弃,到了7.2,已经被移除,因此不建议继续使用. ...

  5. PHP-制作验证码

    <?php //11>设置session,必须处于脚本最顶部 session_start(); $image = imagecreatetruecolor(100, 30); //1> ...

  6. web Javascript360°全景实现

    360 全景浏览是一种性价比很高的虚拟现实解决方案,给人一种全新的浏览体验,让你足不出户就能身临其境地感受到现场的环境.该技术被广泛地应用在房产.酒店.家居等领域. 下面我们使用三种方法讨论一个 36 ...

  7. java的三大特性----封装、集成、多态

    当我们被问到你对java的封装.继承.多态是什么看法的时候,你会想到什么? 想到的会不会是封装就是将类的成员属性用privet修饰一下,达到私有化的目的,只暴露方法,从而达到成员变量私有化的目的. 而 ...

  8. 一文搞懂 SLAM 中的Extension Kalman Filter 算法编程

    作者 | Doreen 01 问题描述 预先知道事物未来的状态总是很有价值的! √ 预知台风的路线可以避免或减轻重大自然灾害的损失. √ 敌国打过来的导弹,如果能够高精度预测轨迹,就能有效拦截. √ ...

  9. 5分钟了解Redis的内部实现快速列表(quicklist)

    快速列表简介 在Redis3 .2版本之前,存储列表(list)数据结构使用的是压缩列表(ziplist)和链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比较小的时候,使用压缩 ...

  10. SpringSecurity-5.11-课堂笔记-01