理解JavaScript中的对象
作者:Jason 发布时间:2024-07-15 01:49:37
JavaScript中对象的简介
我们知道生活中客观存在的一切事物皆为对象,那在程序中的对象是什么样子呢?我们可以将程序中的对象理解为客户端世界中的对象在一种计算机中的一种表示方式.所有的编程语言中提到的对象其性质都是类似的,它往往对应内存中的一块区域,在这个区域中存储对象的属性或方法信息。
JavaScript中对象的创建
基于{}符号创建对象
在JS中我们可以直接基于{}定义对象,在对象内容定义属性和方法,例如:
在JS中我们可以将对象理解为用于封装属性和方法的一个结构体,例如
如果需要反复创建多个相同结构的对象时,用{}代码就很冗余——重复。也不便于维护!
基于构造函数创建对象
假如在JS中我们希望非常方便的定义多个结构相同,但属性值不同的对象,可以直接基于构造函数( 定义同一类型多个对象的相同属性结构的特殊函数)进行对象创建,例如:
建议:只要反复创建多个相同结构的对象,都要用构造函数来创建对象.
在实际应用中我们尽量不要在构造函数中再去定义函数,例如:
这样在构建对象时,可能每次都需要开辟额外的函数空间.
JavaScript中的对象特性
封装特性
JS中的对象用于封装属性和方法.如图所示:
继承特性
JS中为了实现属性或方法的可重用性,提供了一种继承机制,
这种继承的方式需要借助Prototype对象去实现,Prototype对象是在定义构造函数时自动创建,用于存储所有共有属性和方法的一个对象,所有通过此构造函数构建的对象都继承这个原型对象.
构造函数中的原型对象分析,如图所示:
原型对象(ProtoType)对象的继承,如图所示:
在对象中添加共有属性,如图所示:
在对象中添加共有方法的.如图所示:
原型链是由多级父对象(原型对象)逐级继承形成的链式结构。这个原型链保存着一个对象可以访问的所有父级原型对象,以及这个对象可访问到的所有属性和方法。
多态特性
多态一般指同一个函数(行为),在不同情况下表现中的不同的状态。从应用上有两种形式,分别为重载和重写。
重载的定义:一个函数,根据传入的实参值不同,执行不同的逻辑。
重写的定义:在子对象中定义一个和父对象中成员同名的成员。只要从父对象继承来的东西不好用,就用重写自己的!
在子对象中定义一个和父对象中成员同名的自有成员,例如:
JavaScript内置对象类型
对象类型简介
JavaScript中对象的类型可以理解为构造方法和原型对象的结合体,当我们需要查看其对象类型时,可以通过构造方法名.
JS中内置的对象类型
JS中有11种内置对象类型,分别为String, Number, Boolean, Array, Date, RegExp, Math(对象), Error, Function, Object, global(对象)
总结(Summary)
本小节主要是对JS中对象做了简介,并通过实践方式分析JS中对象的创建,对象特性以及对象内置类型。
来源:https://developer.51cto.com/art/202008/624439.htm?utm_source=tuicool&utm_medium=referral


猜你喜欢
- 一个网站的导航就相当于是一条路的路标,不同的是,网站的不同栏目页的入口远远比马路要来得复杂,所以一个清晰的导航设计对于一个网站的意义远远大于
- 用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络。BP神经网络
- 一.Oracle日期和字符串互相转换1.1 日期转字符串1.1.1 yyyy年mm月dd日hh24時mi分ss秒手动拼接年月日select
- 开始安装Androidstudio 4.1克隆此项目git clone https://github.com/pytorch/android
- 在定义图结构之前不用加入gpu:0,只有在session中计算之前在加入,否则的话会提示不能使用gpu保存模型等问题。 with  
- 一、绘图命令操纵海龟绘图有很多命令,可以划分为三种:画笔运动命令、画笔控制命令、全局控制命令1、画笔运动命令命令说明turtle.forwa
- 我就废话不多说了,大家还是直接看代码吧!#! usr/bin/python3.5# -*- coding:utf-8 -*-a = inpu
- 前言本文主要给大家介绍了关于Python用字符串调用函数或方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:先看一个例子:&
- 前言在用python处理表格数据中,这其中的工作重点就是对表格类型的数据进行梳理、计算和展示,本文重点介绍展示这个方面的工作。首先我们看一个
- 关于多线程的大概讲解:在Python的标准库中给出了2个模块:_thread和threading,_thread是低级模块不支持守护线程,当
- 1.忍受 * 第一种解决办法,很简单,无他,不管他,没有读到也没事。这时业务不需要任何改造,你好,我好,她也好~如果业务对于数据一致性要求不高
- 死锁的原理非常简单,用一句话就可以描述完。就是当多线程访问多个锁的时候,不同的锁被不同的线程持有,它们都在等待其他线程释放出锁来,于是便陷入
- Spark Streaming VS Structured StreamingSpark Streaming是Spark最初的流处理框架,使
- 在安装mysqlclient的时候出现了以下报错:解决办法:1.到提示网址:https://visualstudio.microsoft.c
- 实例的背景说明假定一个个人信息系统,需要记录系统中各个人的故乡、居住地、以及到过的城市。数据库设计如下:Models.py 内容如下:&nb
- 卷积核可视化import matplotlib.pyplot as pltimport numpy as npfrom keras impo
- matplotlib默认根据数据系列自动缩放坐标轴范围。pyplot模块中的autoscale函数可以切换是否自动缩放坐标轴范围,xlim(
- 一、self的位置是出现在哪里?首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就
- function clearCookie(){ var keys=document.cookie.match(/[^ =;]+(?=\=)/
- 获取操作系统的当前运行状态和负载情况,是一个系统管理员的基本技能,因为这对我们日常排查故障,定位问题有着非常紧密的联系,比如查看当前系统的基