js面向对象篇(一)
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。 ----摘自阮一峰老师的博客
当然现在的es6中已经有了class,去声明一个类,让js看上去更像是一个面对对象编程的语言
那么问题来了什么是面向对象呢?其实js是有很多种写法的,我们平时一般写的程序都是面向过程式的,就像这样
var a = 1;
function show(opt){
alert(opt);
}
show(123);
for(var i=1;i<10;i++){
//
}
其实面向对象的程序,我们也是经常在用,就像这样
var arr = new Array(); //这是一个数组对象,当然我们平时一般都写成[]的形式,其实是一样的,[]只不过是new Array()简写罢了
var date = new Date(); //这是一个日期对象 //对象上有属性和方法
arr.length //对象的属性
arr.push() //对象的方法
arr.sort()
date.getDate() //对象的方法
以上,就是我们经常用到的面向对象的程序的用法,只是我们只拿来用,而不知道其中所实现的原理罢了,我们称之为系统对象
面向对象不过是另一种编程的方式而已,那么为什么要用面向对象编程呢,那是因为它相对于我们面向过程编程的写法,有它的一些优点
1,抽象:抓住核心问题,换言之就是就是把相同的东西抽离出来
2,封装:只能通过对象来访问方法或者属性,也就是有一定的规范,而不是什么情况下都可以使用的,就是防止我们滥用一些方法或者属性
3,继承:从已有的对象中继承出一个新的对象,我认为这是最重要的,可以很大程度的复用代码,提交性能,而又不相互影响
4,多态:多对象的不同形态,也就是在不同的场景下,同一个接口可能会有不同的作用,有不同的形态,也是可以达到复用代码的目的,当然因为js是弱类型语言,所以,可能不太明显
当然,说这么多,可能大家还是云里雾里,所以,我建议大家多写面向对象的程序,只有这样你才能真切的感受到面向对象的好处。
js面向对象篇(一)的更多相关文章
- [js笔记整理]面向对象篇
一.js面向对象基本概念 对象:内部封装.对外预留接口,一种通用的思想,面向对象分析: 1.特点 (1)抽象 (2)封装 (3)继承:多态继承.多重继承 2.对象组成 (1)属性: 任何对象都可以添加 ...
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- web前端开发分享-css,js入门篇(转)
转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- js面向对象之公有、私有、静态属性和方法详解
现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人对于原生javascript缺乏深入的理解,习惯了函数式 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十五 ║Vue基础:JS面向对象&字面量& this字
缘起 书接上文<从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史>,昨天咱们说到了以我的经历说明的web开发经历的 ...
- js面向对象编程 ---- 系列教程
原 js面向对象编程:数据的缓存 原 js面向对象编程:如何检测对象类型 原 js面向对象编程:if中可以使用那些作为判断条件呢? 原 js面向对象编程:this到底代表什么?第二篇 原 js面向对象 ...
- web前端开发分享-css,js入门篇
学习没有捷径,但学习是有技巧与方法. 一,css入门篇: 推荐书籍:css哪些事儿,精通css. 理由:css那些事儿,他是一本介绍css基础类的书,是入门的经典读物. 系统的介绍了css的选 ...
随机推荐
- .rpt 文件怎麽打開?Crystal Reports 打開.rpt失敗 ?
.rpt 是SAP Crystal Reports 製作出來的檔案的後綴名, 可以通過 SAP Crystal Reports Viewer 打開,也可以直接用記事本(notepad / Note ...
- CenOS 7 java链接redis数据库
完整代码 public class App { public static void main(String[] args) { System.out.println("Hello Worl ...
- Lnamp的高级网站架构+动静分离+反向代理
Lnamp的架构 环境: 图上面是5台服务器 192.168.1.116 是nginx负载均衡+动静分离 192.168.1.117:linux+apache+php 192.168.1.118:li ...
- springboot与shiro在html中使用shiro标签
上一章讲环境搭建 springboot与shiro和mybatis和mysql 现在讲html中怎么使用shiro标签,这里是基于上一章讲的 在pom文件引入依赖 <dependency> ...
- [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏
Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...
- java多线程上篇(二) -- 进程的控制、同步
一.进程的控制 进程的基本数据信息是操作系统控制管理进程的数据集合,这些信息就是用来控制进程的,此处我们说的进程控制就是进程的管理. 比如进程有状态,那么进程的创建.终止,状态的切换,这都不是进程自主 ...
- Centos7.3安装jenkins
安装jenkins 下载地址: https://jenkins.io/download/最新版本 将Jenkins上传到tomcat的webapp目录 ...
- (八)easyUI之Accordion折叠面板:动态面板
二.动态面板 数据库设计 函数设计:该函数用于获取某个节点的所有子节点 CREATE FUNCTION fn_getAddress_ChildList_test(rootId INT) RETURNS ...
- Sql Server有主外键关系时添加、删除数据
当表之间有主外键关系时删除数据会被约束,添加.删除失败 解决办法,我们可以先把主外键关系的检查约束给关掉 → 然后删除数据 → 之后再把约束打开 查询出关掉所有外键约束的语句 SELECT 'ALTE ...
- Java Web 深入分析(4) Java IO 深入分析
I/O问题可以说是现在海量数据时代下 ,I/O大部分web系统的瓶颈.我们要了解的java I/O(后面简称为(IO)) IO类库的基本结构 磁盘IO的工作机制 网络IO的工作机制 NIO的工作方式 ...