概述

当大家已经把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. MySQL性能优化之索引设计

    作者:IT王小二 博客:https://itwxe.com 上一篇给小伙伴们讲了关于SQL查询性能优化的相关技巧,一个好的查询SQL离不开合理的索引设计.这篇小二就来唠一唠怎么合理的设计一个索引来优化 ...

  2. JAVA_Scanner 键盘输入

    键盘输入语句 介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取.Input.java , 需要一个 扫描器(对象), 就是 Scanner 步骤: 导入该类的所在包, java.u ...

  3. LeetCode-026-删除有序数组中的重复项

    删除有序数组中的重复项 题目描述:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 ...

  4. elasticsearch通用工具类

    这几天写了一个关于es的工具类,主要封装了业务中常用es的常用方法. 本文中使用到的elasticsearch版本6.7,但实际上也支持es7.x以上版本,因为主要是对springboot提供的:El ...

  5. Redis环境搭建-Linux单机

    一.准备Linux 可以买云服务器,也可以用虚拟机,我用的是虚拟机Oracle VM VirtualBox 二.编译环境 1.检查linux下是否安装环境 yum list installed | g ...

  6. mysql命令flush privileges命令

    修改一个用户的密码,命令如下 mysql> update user set password=password('新密码') where user='用户名'; 执行后报错: ERROR 105 ...

  7. Java学习笔记:03面向对象-接口_多态

    1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...

  8. 02 基础 卸载JDK 安装JDK Java程序运行机制

    基础 JDK:Java Development Kit(Java开发者工具 包含JRE和JVM) JRE:Java Runtime Environment(java运行时环境,包含JVM) JVM:J ...

  9. JavaSE 千寻简学习笔记

    JavaSE 千寻简学习笔记 简介 TIOBE:编程语言排行榜 官网:https://hellogithub.com/report/tiobe/ 如何高效的学习Java 多写(代码)多写(笔记)多写( ...

  10. chap8-fluent python

    浅拷贝 VS 深拷贝 # In[] # list 生成一个新的引用对象,只是用alst完成初始化 alst = [1,2,3,4,5] blst=list(alst) alst.append(6) p ...