简介

封装,继承和多态是面向对象编程的三步,面向对象编程,即先将数据封装在对象中,然后按需使用对象中的成员。

封装

创建一个对象集中保存一个事物的属性和功能,为后续数据的使用做准备,封装有利于大量数据的维护和使用

创建对象

简单创建:{}
var 对象名 = {属性名1: 值2,属性名2: 值2,...: ...方法名1: function(){}...: ...
}
仿数组创建:new
  • 构建空对象:var 对象名 = new Object;
  • 添加新属性:obj.属性名 = 属性值;
  • 添加新方法:obj.方法名 = function(){…};

注:js对象实际上类似一个关联数组。当在创建对象时,对象内信息不明确时可用此方法。

构造函数创建:new 类型名(属性值1,…)
  • 定义一个构造函数,用来描述一类对象的同一结构。
function 类型名(形参1,...){this.属性名=形参1;... = ... ;this.方法名=function(){}
}
  • 调用构造函数创建对象
var obj=new 类型名(属性值1,...);

注:构造函数其实是仿数组构建法的变体,当需要反复创建多个相同结构的对象时,可用构造函数将相同结构保存起来,可以通过调用函数实现代码重用。

访问对象

访问对象属性:对象名.属性名

属性就是保存在对象中的变量,要找到属性,得先找到对象,再用.操作符,进入对象中,访问属性。

访问对象方法:对象名.方法()

方法就是保存在对象中的函数,先找到对象,再用.操作符,进入对象中,找到内部的方法加()调用。

内部访问属性:this.属性名

对象方法中,直接使用属性名无法访问到自己的属性值,会报错: 属性名未定义。
属性就是保存在对象中的变量,默认在作用域链中查找,作用域链包含临时函数作用域和window作用域,对象的{}并不是作用域,不包含在作用链中,故即使在对象内部,对象内的属性也无法被直接找到。只能使用对象名.属性名进行访问。
一般来说,为了避免紧耦合,我们在内部访问的时候使用this.属性名代替对象名.属性名,防止因外部改变带来的不变,this可以动态的指向调用者,当使用对象名.方法()调用对象方法时,方法中的this将自动指向“.”前的调用者,被替换为对象名

注: this与函数定义无关,只与函数调用者有关。

对象特点

对象与关联数组

相同点:

  1. 都可用[“成员名”]或.成员名两种方式,访问自己的成员。

注:如成员名为变量,只能用[变量]形式访问,.后的值会默认为字符串。

  1. 都可以用for-in遍历。
  2. 都可用[“成员名”]或.成员名两种方式,添加成员。
  3. 访问数组或对象中不存在的位置,会返回undefined。

不同点:
类型不同,关联数组是数组对象家的孩子,对象是Object家中的,原型链不同。

JS核心之封装继承多态(一)相关推荐

  1. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态

    快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...

  2. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  3. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  4. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  5. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

    编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...

  6. 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)

    面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...

  7. 小白理解——封装继承多态

                                      一.封装 是什么:首先是抽象,把事物抽象成一个类,其次才是封装.对外表示为一个对象,隐藏对象的属性和动作实现的细节,仅对外公开接口. ...

  8. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  9. 面向对象 编程及面向对象三大属性:封装 继承 多态

    面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...

  10. 白话文带你了解 封装 继承 多态

    这里讲的仅仅是带你理解 封装 继承 多态 染好您可以移步去别的文章学习具体的实现 (只是个人理解 您可以不爱,请别伤害哦!) 首先你要知道 java是面向对象的,说白了就是我拿你当个人,请认清你的地位 ...

最新文章

  1. Windows7/10上配置OpenCV3.3.0-Python3.6.2操作步骤
  2. CVPR 2019审稿满分论文:中国博士提出融合CV与NLP的视觉语言导航新方法
  3. python精进之路 -- open函数
  4. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范
  5. STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)
  6. 第九章 国际化、帮助系统和Qt插件
  7. 前端页面因为过滤器出现路径不正确,css效果不展示
  8. 配电室环境监测系统,智能配电室环境监控系统完整方案
  9. 计算机二级c语言题型及考点,全国计算机二级C语言考试题型及考试重点.doc
  10. JavaScript设计模式之享元模式
  11. ECHART基本使用,折线图,柱状图,散点图,饼图,盒形图5分钟上手
  12. java 实现 PTF远程连接带有中文下载,解决文件损失
  13. 2022年高处安装、维护、拆除考试试卷及高处安装、维护、拆除作业考试题库
  14. 16S测序 生物信息数据处理
  15. Pycharm2017补丁破解
  16. 高效文件管理-Git管理个人文件指南
  17. php header 生成pdf,使用PHP生成PDF文档
  18. ps-混合模式使用技巧
  19. 漫画:旅行青蛙是什么在吸引大家
  20. Cause: java.sql.SQLSyntaxErrorException: Unknown table ‘argue_backend‘ in field list 使用Mybatis报错

热门文章

  1. 常见运维监控系统的技术选型
  2. 铁大自动选课工具使用说明
  3. 廖雪峰git教程学习记录
  4. 高斯滤波 c++实现
  5. [通信原理]关于QPSK信号包络起伏问题的研究
  6. 音乐推荐系统协同过滤算法解释
  7. 深入理解linux网络pdf,深入理解Linux网络技术内幕 pdf epub mobi txt 下载
  8. vue自执行函数,vue3动态组件
  9. 刘汝佳 《竞赛入门》5.2.2
  10. 使用vue模拟通讯录列表,对中文名拼音首字母提取并排序