理解JavaScript中的对象


Posted in Javascript onAugust 25, 2020

JavaScript中对象的简介

我们知道生活中客观存在的一切事物皆为对象,那在程序中的对象是什么样子呢?我们可以将程序中的对象理解为客户端世界中的对象在一种计算机中的一种表示方式.所有的编程语言中提到的对象其性质都是类似的,它往往对应内存中的一块区域,在这个区域中存储对象的属性或方法信息。

JavaScript中对象的创建

基于{}符号创建对象

在JS中我们可以直接基于{}定义对象,在对象内容定义属性和方法,例如:

理解JavaScript中的对象

在JS中我们可以将对象理解为用于封装属性和方法的一个结构体,例如

理解JavaScript中的对象

如果需要反复创建多个相同结构的对象时,用{}代码就很冗余——重复。也不便于维护!

基于构造函数创建对象

假如在JS中我们希望非常方便的定义多个结构相同,但属性值不同的对象,可以直接基于构造函数( 定义同一类型多个对象的相同属性结构的特殊函数)进行对象创建,例如:

理解JavaScript中的对象

建议:只要反复创建多个相同结构的对象,都要用构造函数来创建对象.

在实际应用中我们尽量不要在构造函数中再去定义函数,例如:

理解JavaScript中的对象

这样在构建对象时,可能每次都需要开辟额外的函数空间.

JavaScript中的对象特性

封装特性

JS中的对象用于封装属性和方法.如图所示:

理解JavaScript中的对象

继承特性

JS中为了实现属性或方法的可重用性,提供了一种继承机制,

这种继承的方式需要借助Prototype对象去实现,Prototype对象是在定义构造函数时自动创建,用于存储所有共有属性和方法的一个对象,所有通过此构造函数构建的对象都继承这个原型对象.

构造函数中的原型对象分析,如图所示:

理解JavaScript中的对象

原型对象(ProtoType)对象的继承,如图所示:

理解JavaScript中的对象

在对象中添加共有属性,如图所示:

理解JavaScript中的对象

在对象中添加共有方法的.如图所示:

理解JavaScript中的对象

原型链是由多级父对象(原型对象)逐级继承形成的链式结构。这个原型链保存着一个对象可以访问的所有父级原型对象,以及这个对象可访问到的所有属性和方法。

多态特性

多态一般指同一个函数(行为),在不同情况下表现中的不同的状态。从应用上有两种形式,分别为重载和重写。

重载的定义:一个函数,根据传入的实参值不同,执行不同的逻辑。

重写的定义:在子对象中定义一个和父对象中成员同名的成员。只要从父对象继承来的东西不好用,就用重写自己的!

在子对象中定义一个和父对象中成员同名的自有成员,例如:

理解JavaScript中的对象

JavaScript内置对象类型

对象类型简介

JavaScript中对象的类型可以理解为构造方法和原型对象的结合体,当我们需要查看其对象类型时,可以通过构造方法名.

JS中内置的对象类型

JS中有11种内置对象类型,分别为String, Number, Boolean, Array, Date, RegExp, Math(对象), Error, Function, Object, global(对象)

总结(Summary)

本小节主要是对JS中对象做了简介,并通过实践方式分析JS中对象的创建,对象特性以及对象内置类型。

以上就是理解JavaScript中的对象的详细内容,更多关于JavaScript 对象的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
Aug 09 Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
微信小程序 基础组件与导航组件详细介绍
Feb 21 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
vue element自定义表单验证请求后端接口验证
Dec 11 Javascript
原生JS实现拖拽效果
Dec 04 Javascript
jquery插件实现代码雨特效
Apr 24 jQuery
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 #Javascript
node.js基础知识汇总
Aug 25 #Javascript
基于JS实现快速读取TXT文件
Aug 25 #Javascript
Vue实现简单的拖拽效果
Aug 25 #Javascript
浅谈JavaScript节流和防抖函数
Aug 25 #Javascript
JS实现拖动模糊框特效
Aug 25 #Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 #Javascript
You might like
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python内存管理机制原理详解
2019/08/12 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
Android面试题及答案
2015/09/04 面试题
大学毕业生通用自荐信范文
2013/10/31 职场文书
网络编辑岗位职责
2014/03/18 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
员工年终考核评语
2014/12/31 职场文书
青岛导游词
2015/02/12 职场文书
党支部审查意见
2015/06/02 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript