体验javascript之美6:如果你觉得什么都会了或者不知道js学什么了看这里-面向对象编程
概述
当大家已经把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学什么了看这里-面向对象编程的更多相关文章
- 体验javascript之美第五课 五分钟彻底明白 匿名函数自执行和闭包
通过文你将学到: 1.闭包是怎么回事儿? 2.闭包的原理和在jquery中的应用 3.从一到面试题彻底理解闭包和垃圾回收机制 4.闭包在jquery中的应用 概述 经常听到闭包这个词儿,或者匿名函数自 ...
- JavaScript学习总结【8】、面向对象编程
1.什么是面向对象编程 要理解面向对象,得先搞清楚什么是对象,首先需要明确一点这里所说的对象,不是生活中的搞男女朋友对象,面向对象就是面向着对象,换在代码中,就是一段代码相中了另一段代码,自此夜以继日 ...
- JavaScript之美读书笔记一
前两天去图书馆借了一本<JavaScript之美>,在书架上无意中看到的,想着那就看看吧. 第一章 原型 有些JavaScript爱好者宣称JavaScript是一种基于原型而不是面向对象 ...
- 闭包初体验 -《JavaScript面向对象编程指南》
下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...
- 【转】javascript面向对象编程
摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...
- 从Prototype学习JavaScript面向对象编程
概述 JavaScript是一种基于对象的编程语言.它是灵活的,既有面向过程(也就是面向函数)的编程,也有面向对象的编程.因此我称它是基于对象的编程语言. 对于JavaScript的面向过程的编程特性 ...
- 老生常谈: Javascript 面向对象编程初探(一)--- 封装
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...
- 深入解读JavaScript面向对象编程实践
面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术.对JavaScript而言,其核心是支持面向对象的,同时它也提供了强大灵活的基于原型的面向对象编程能力 ...
- JavaScript学习笔记(十六)——面向对象编程
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
随机推荐
- 前端js webuploader上传(导入)excel文件
项目开发中用到导入(上传)Excel文件 我使用的是百度的webuploader: 1:下载:http://fex.baidu.com/webuploader/(官方下载/示例) 2:使用Web Up ...
- JZ-018-二叉树的镜像
二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题目链接: 二叉树的镜像 代码 /** * 标题:二叉树的镜像 * 题目描述 * 操作给定的二叉树,将其变换为源二叉树的镜像. * ...
- 关于php接受xml的一些问题,simplexml_load_string收不到数据
接受xml数据一般使用这两种方法 方法1: file_get_contents('php://input'); 方法2: simplexml_load_string($GLOBALS['HTTP_RA ...
- 华为交换机ACL如何使用及原则
华为交换机ACL如何使用及原则 转载自:辣条①号 源链接:https://boke.wsfnk.com/archives/480.html ACL(访问控制列表)的应用原则:标准ACL,尽量用在 ...
- Net中委托之一
1.委托的用法 委托是一种特殊的类型 a. 委托可以类外定义,也可以在类里面定义 b. 委托的操作步骤 1.委托的声明 2.委托的实例化 3.委托的调用 2.委托实例 amespace MyDeleg ...
- 七天接手react项目 系列 —— react 脚手架创建项目
其他章节请看: 七天接手react项目 系列 react 脚手架创建项目 前面我们一直通过 script 的方式学习 react 基础知识,而真实项目通常是基于脚手架进行开发. 本篇首先通过 reac ...
- 如何构建Docker镜像
构建Docker 镜像有如下两种方法: (一)使用docker commit命令.(二)使用docker build命令和 Dockerfile 文件.在这里并不推荐使用docker commit来构 ...
- ZYNQ 双CPU裸机运行例程
vivado 2014.4 特殊情况:总DDR内存大于512MB,且CPU0已经占用了超过512MB,这时按以下步骤CPU1无法启动. 原因:启动入口地址限制.更改方法如下: 打开cpu1_bsp\p ...
- Windows 如何打开 .md 文件
•问题 最近在学习[C++|黑马程序员],对于课堂笔记中的 .md 文档无从下手,要是直接通过 Chrome 打开排版又很乱,且不能正常显示URL中的内容: 这可如何是好??? •解决方案 1. 打开 ...
- 专访 KubeVela 核心团队:如何简化云原生复杂环境下的应用交付和管理
作者 | Infoq Tina 背景 12 月 9 日,在 2021 年 KubeCon 云原生技术峰会上,CNCF 开源项目 KubeVela 宣布推出了 1.2 版本. KubeVela 是一个简 ...