博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十四节 JS面向对象基础
阅读量:4358 次
发布时间:2019-06-07

本文共 2111 字,大约阅读时间需要 7 分钟。

什么是面向对象:在不需要知道它内部结构和原理的情况下,能够有效的使用它,比如,电视、洗衣机等也可以被定义为对象

  什么是对象:在Java中对象就是“类的实体化”,在JavaScript中基本相同;对象是一个整体,对外提供一些操作

  什么是面向对象:使用对象时,只关注对象提供的功能,不关注其内部细节,比如JQuery

  面向对象是一种通用思想,并非只有编程中能用,任何事情都可以用

 

JS中的面向对象:

  面向对象编程(OOP:orient object programming)的特点:

    抽象:抓住核心问题,找出自己需要的、跟问题相关的或最主要的属性,把他抽离出来

    封装:不考虑内部实现,只考虑功能使用,把自己需要用的功能对象进行封装。

    继承:从已有对象中,继承新的对象,即从父类上继承出一些方法、属性,子类,又有一些自己的特性;有多重继承(同时继承两个或多个父级)、多态(不太常用,对于C/C++、Java等强语言比较有用,但是对于JS这种弱语言意义不大)。

  对象的组成:

    方法——我们之前常叫做函数:过程、动态的

    属性——我们之前常叫做变量:状态、静态的 

对象组成
View Code
1  2  3  4     
5 对象组成2 6 17 18 19 20
View Code

 

第一个面向对象程序:

  为对象添加方法和属性

    this(当前发生事件的对象)详解,事件处理中this的本质

      window:全局方法属于window下的,如下:

      所以说,this——当前的函数属于谁,this就表示谁

    注意:不能在系统对象(如Date-日期对象、Array-数组对象、RegExp-正则)中随意附加方法、属性,否则会覆盖已有方法、属性,当我们想要创建自己的对象,且不想要系统额外附加的方法、属性等时,我们可以选择object对象,如下:

    object对象:其优点是没有功能,相当于一张白纸,你可以随意写、画,而且还能有效避免与系统属性或方法产出冲突。下面下一个简单的“面向对象程序”如下:

 

面向对象两种实现方式:

① 工厂方式

  什么是工厂:原料、加工、出厂

  工厂方式:

    用构造函数创建一个类:(构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象赋初始值,总与new一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的。   ——百度百科)

    什么是类、对象(实例):模具和零件

  工厂方式的问题:

    没有new

    函数重复定义:造成资源浪费

  加上new

    偷偷做了两件事

      替你创建了一个空白对象

      替你返回了这个对象

    new 和 this

1  2  3  4     
5 第一个面向对象程序 6 78 79 80 81
View Code

 

② 原型——prototype

  什么是原型

    原型是class,修改他可以影响一类元素,即一次给一组元素添加样式,原型就相当于CSS中的class(在JS中叫做“原型”),而与此相对的CSS中的行间样式(在JS中相当于“给对象添加事件”):一次只能给一个元素添加样式

    在已有对象中加入自己的属性、方法

    原型修改对已有对象的影响

  为Array添加sum方法

    给对象添加方法,类似于行间样式

    给原型添加方法,类似于class

1  2  3  4     
5 原型简介 6 26 27 28 29
View Code
1  2  3  4     
5 原型用到面向对象里 6 37 38 39 40
View Code

总之,在我们编程的时候,基本套路就是“在构造函数里添加属性,另外用原型添加方法”

  原型的小缺陷:

    无法限制覆盖

 

类和对象对比:

  类:模子——不具备实际功能,用于生产产品

  对象:产品(产品):具备实际功能,就是实际产品

  例如:类Array  Array.push();  //错误语法,因为Array是类,不是对象;

       对象    new arr()  //错误语法,因为系统不存在arr类

所以,其实原型之所以类似于CSS中的类,是因为它的方法是添加到类上的,即直接给一类“对象”添加方法

 

还有,流行的面向对象编写方式

  用混合方式构造对象

    混合的构造函数/原型方式(Mixed Constructor Function/Prototype Method)    

  原则

    构造函数:加属性

    原型:加方法

  对象命名规范

    类名首字母大写  

转载于:https://www.cnblogs.com/han-bky/p/10293423.html

你可能感兴趣的文章
【连载】 FPGA Verilog HDL 系列实例--------步进电机驱动控制
查看>>
预处理器之 条件编译
查看>>
BNUOJ 1038 Flowers
查看>>
Liferay7 BPM门户开发之33: Portlet之间通信的3种方式(session、IPC Render Parameter、IPC Event、Cookies)...
查看>>
纯css3实现图片等比例缩放+全屏居中
查看>>
8种效果实例-jQuery anoSlide 焦点图轮播
查看>>
白话JAVA守护线程
查看>>
alloca() 是什么?为什么不提倡使用它?
查看>>
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化
查看>>
DIV_layout
查看>>
[原][osg][粒子特效]spark粒子特效生成流程
查看>>
二维数组中的查找某个数
查看>>
017_编写一个点名器脚本
查看>>
移植最新uboot之新建板—时钟—SDRAM—UART
查看>>
Big Event in HDU
查看>>
利用GCD实现单利模式的宏代码
查看>>
12.30
查看>>
使用C#创建简单的联系人备忘录
查看>>
java.util.concurrent.atomic 类包详解
查看>>
js之对象
查看>>