JS核心之封装继承多态(一)
简介
封装,继承和多态是面向对象编程的三步,面向对象编程,即先将数据封装在对象中,然后按需使用对象中的成员。
封装
创建一个对象,集中保存一个事物的属性和功能,为后续数据的使用做准备,封装有利于大量数据的维护和使用。
创建对象
简单创建:{}
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与函数定义无关,只与函数调用者有关。
对象特点
对象与关联数组
相同点:
- 都可用[“成员名”]或.成员名两种方式,访问自己的成员。
注:如成员名为变量,只能用[变量]形式访问,.后的值会默认为字符串。
- 都可以用for-in遍历。
- 都可用[“成员名”]或.成员名两种方式,添加成员。
- 访问数组或对象中不存在的位置,会返回undefined。
不同点:
类型不同,关联数组是数组对象家的孩子,对象是Object家中的,原型链不同。
JS核心之封装继承多态(一)相关推荐
- c语言编程 菲薄拉,C语言设计模式-封装-继承-多态
快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...
- python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)
面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...
- Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态
Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...
- python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态
六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...
- python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...
- 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)
面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...
- 小白理解——封装继承多态
一.封装 是什么:首先是抽象,把事物抽象成一个类,其次才是封装.对外表示为一个对象,隐藏对象的属性和动作实现的细节,仅对外公开接口. ...
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- 面向对象 编程及面向对象三大属性:封装 继承 多态
面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...
- 白话文带你了解 封装 继承 多态
这里讲的仅仅是带你理解 封装 继承 多态 染好您可以移步去别的文章学习具体的实现 (只是个人理解 您可以不爱,请别伤害哦!) 首先你要知道 java是面向对象的,说白了就是我拿你当个人,请认清你的地位 ...
最新文章
- Windows7/10上配置OpenCV3.3.0-Python3.6.2操作步骤
- CVPR 2019审稿满分论文:中国博士提出融合CV与NLP的视觉语言导航新方法
- python精进之路 -- open函数
- mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范
- STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)
- 第九章 国际化、帮助系统和Qt插件
- 前端页面因为过滤器出现路径不正确,css效果不展示
- 配电室环境监测系统,智能配电室环境监控系统完整方案
- 计算机二级c语言题型及考点,全国计算机二级C语言考试题型及考试重点.doc
- JavaScript设计模式之享元模式
- ECHART基本使用,折线图,柱状图,散点图,饼图,盒形图5分钟上手
- java 实现 PTF远程连接带有中文下载,解决文件损失
- 2022年高处安装、维护、拆除考试试卷及高处安装、维护、拆除作业考试题库
- 16S测序 生物信息数据处理
- Pycharm2017补丁破解
- 高效文件管理-Git管理个人文件指南
- php header 生成pdf,使用PHP生成PDF文档
- ps-混合模式使用技巧
- 漫画:旅行青蛙是什么在吸引大家
- Cause: java.sql.SQLSyntaxErrorException: Unknown table ‘argue_backend‘ in field list 使用Mybatis报错