面向对象的javascript个人理解

javascript涵盖3个部分

1 ECMAScript 语言的核心,即变量,函数,循环等
2 DOM(文档对象模型),用来访问元素
3 BOM(浏览器对象模型),用来访问浏览器的一些属性

常说的ES6其实就是ECMAScript第六版,从1到6添加了许多新特性,引入了许多新对象和属性

面向对象的具体含义以及这种程序设计风格的主要特征

面向对象程序设计 简称OOP
其中最常用到的概念
1.对象,方法,属性
2.类
3.封装
4.聚合
5.重用于继承
6.多态

具体理解各个部分

对象,就是“事物”(包括人和物)在程序设计语言中的表现形式,生活中的类比总结
1对象往往由名词表示,如person book
2对象拥有方法,方法一般是些动词,如read、run 
3对象拥有属性,属性值往往是一些形容词

类呢,其实在javascript中不存在类,对象有时候也叫做实例,比如老鹰是鸟的一个实例,在这里鸟是抽象的类,在javascript中呢,没有类只有原型,原型本身是一种对象,在java c++这种传统的面向对象语言中,这样描述,基于person类创建了一个叫bob的类,而在这种基于原型的面向对象语言中,则要这样描述,将现有的person对象扩展成一个叫做bob的新对象

封装呢,主要阐述对象中所包含的内容,主要由两部分组成
1 相关的数据(用于存储属性)
2 基于这些数据所能做的事(所能调用的方法)
比如 
(function(){
    
})()

这个例子就是一个封装,里面的内容能自动编译,真是神奇啊

封装通过暴露借口或者提供借口,我们不需要关心里面的功能是怎么实现的,只需要知道所操作的接口就行了

其实主要涉及的就是信息隐藏

关于信息隐藏,还有一方面,即方法与属性的可见性 ,在js中,所有属性和方法都是可见的,本来所有人都能看到,但是该语言还是提供了一些隐藏数据的方法,以保护程序的隐秘性

那么聚合,指的其实就是将几个对象合并成一个新对象的过程,反过来呢,当我们有一个大问题的时候,我们就能把大问题分解成很多个易于解决的小问题,各个击破。

继承,通过继承这种方式,我们可以实现对现有代码的重用,继承发生在对象与对象之间,一个对象想要拥有另一个对象的所有属性和方法就可以通过继承的方式,一般来说,继承了另一个对象的属性和方法后,通常会往里加入新的方法,以扩展被继承的老对象。否则两个对象都一模一样还要再定义一遍干什么呢?继承通过扩展原型来实现。

多态,不同对象通过相同的方法调用来实现各自行为的能力,称之为多态。

时间: 2024-11-10 01:03:15

面向对象的javascript个人理解的相关文章

全面理解面向对象的 JavaScript

对象的上下文依赖 var str = "我是一个 String 对象 , 我声明在这里 , 但我不是独立存在的!" var obj = { des: "我是一个 Object 对象 , 我声明在这里,我也不是独立存在的." }; var fun = function() { console.log( "我是一个 Function 对象!谁调用我,我属于谁:", this ); }; obj.fun = fun; console.log( this

全面理解面向对象的JavaScript

转载:http://justcoding.iteye.com/blog/2019293 原文:http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/index.html?ca=drs-#major6 前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学习和深入理解.所以,经常出现的情况是,

深入全面理解面向对象的 JavaScript

深入全面理解面向对象的 JavaScript (原著: 曾 滢, 软件工程师, IBM,2013 年 4 月 17 日) JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征.本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语言,以及如何正确地使用这一特性. 前言 当今 JavaScript 大行其道,各种应用

前端开发:面向对象与javascript中的面向对象实现(一)

前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“找不到对象!”,他:“就你那样也能找得到对象?”.我一脸黑线...... 废话不多说,今天博主要跟大家聊的是<面向对象与javascript中的面向对象实现>”. 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理

JavaScript Oriented[探究面向对象的JavaScript高级语言特性]

JavaScript Oriented 探究面向对象的JavaScript高级语言特性 Prologue . JavaScript Introduce 1.  JS Abstract JavaScript是由Netscape公司工程师Brendan Eich研发的脚本语言,经过推广和流行,兼容ECMA-262标准,至今用于描述HTML网页行为.(前端验证,检测,响应,触发,控制等动态行为) Knowledge Tree 2.     About Document 本文涉及到的概念有JavaScr

前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的影响,单单是自己的念想受到了一定得局限,想法不能够像平地而起的高楼大厦建成一样.可是那大楼也是有烂尾的呀,我觉得最重要的还是外在环境与个人观念的先决条件,决定了拖延症的症状的好坏,有那么一些人,它也有拖延症,但是它在拖的中间,想的更多,看的更远.事情在做的时候更加有条不紊,这拖延症这样看来,它也是好

面向对象的JavaScript --- 多态

面向对象的JavaScript --- 多态 多态 "多态"一词源于希腊文 polymorphism,拆开来看是poly(复数)+ morph(形态)+ism,从字面上我们可以理解为复数形态. 多态的实际含义是:同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果.换句话说,给不同的对象发送同一个消息的时候,这些对象会根据这个消息分别给出不同的反馈.从字面上来理解多态不太容易,下面我们来举例说明一下. ? 主人家里养了两只动物,分别是一只鸭和一只鸡,当主人向它们发出&quo

面向对象的JavaScript --- 动态类型语言

面向对象的JavaScript --- 动态类型语言 动态类型语言与面向接口编程 JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承. JavaScript 也没有在语言层面提供对抽象类和接口的支持. 正因为存在这些跟传统面向对象语言不一致的地方,我们在用设计模式编写代码的时候,更要跟传统面向对象语言加以区别.我们有必要先了解一些 JavaScript 在面向对象方面的知识. 编程语言按照数据类型大体可以分为两类,一类是静态类型语言,另一

【JavaScript】理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在Javascript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在Javascript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段Javascript或者jQuery代码,但是对于许多开发者来说它任然是一个谜.在阅读本文