JavaScript对象类型之简单介绍
引言
对象是JavaScript的基本数据类型。
对象是一种复合值:将很多值(原始值或者其他对象)聚合在一起,通过名字访问这些值。
对象可以看做属性的无序集合,每个属性都是一个名/值对。属性名是字符串。
对象还可以看做字符串到值的映射。
除了可以保持自有的属性,对象还可以从一个称为原型的对象继承属性--“原型式继承”是JavaScript的核心特征。
对象的动态性
对象可以新增属性,也可以删除属性。
通常用于模拟静态对象以及静态类型语言种的“结构体”(struct)。有时它们也用做字符串的集合(忽略名/值对种的值)。
对象的可变性
JavaScript中通过引用而非值来操作对象。
常见用法
对象属性最常用的用法是:
- 创建(create)
- 设置(set)
- 查找(query)
- 删除(delete)
- 检测(test)
- 枚举(enumerate)
属性特性
在JavaScript对象的属性中,除了名字和值之外,还有一个与之相关的值,称为“属性特性”(property attribute):
- 可写(writable attribute) -- 表明是否可以设置该属性的值;
- 可枚举(enumerable attribute) -- 表明是否可以通过for/in循环返回该属性;
- 可配置(configurable attribute) -- 表明是否可以删除或修改该属性。
对象特性
除了包含属性之外,每个对象还拥有三个相关的对象特性(object attribute):
- 对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象;
- 对象的类(class)是一个表示对象类型的字符串;
- 对象的扩展标记(extensible flag)指明了(在ECMAScript 5中)是否可以指向该对象添加新属性。
三类JavaScript对象和两类属性
三类JavaScript对象
- 内置对象(native object)是由ECMAScript规范定义的对象或类,例如,数组、函数、日期和正则表达式都是内置对象。
- 宿主对象(host object)是由JavaScript解释器所嵌入的宿主对象(比如Web浏览器)定义的;
自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象;
两个属性
- 自有属性(own property)是直接在对象中定义的属性;
继承属性(inherited property)是在对象的原型对象中定义的属性。
JavaScript对象类型之简单介绍的更多相关文章
- C++map类型 之 简单介绍
一:map的前世今生 (1)从关联容器与顺序容器说起.关联容器通过键(key)存储和读取元素.而顺序容器则通过元素在容器中的位置顺序存储和訪问元素(vector,queue,stack,list等). ...
- JavaScript对象类型之创建对象
引言 JavaScript中,可以通过对象直接量,关键字new(ECMAScript 5中的)Object.create(),函数来创建对象. 对象直接量 JavaScript中使用对象直接量来创建对 ...
- Python中的对象类型的初步介绍
一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相 ...
- JavaScript对象类型判断注意点
注意点 不要使用 new Number() . new Boolean() . new String() 创建包装对象:用 parseInt() 或 parseFloat() 来转换任意类型到numb ...
- JavaScript(一)——简介(简单介绍)
1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle收购了),J ...
- Swift中的Result 类型的简单介绍
Swift 5引入了一个新的Result类型, 它使用枚举来处理异步函数的结果. 苹果文档对该类型的描述: A value that represents either a success or a ...
- 关于javascript对象的简单记忆法
关于javascript对象方法的简单记忆法(个人整理) string对象: 大号小号闪烁加链接./big/small/blink/link/ 粗体斜体打字删除线./bold/italics/fixe ...
- javaScript系列 [02]-javaScript对象探析
[02]-javaScript对象探析 题记:多年前,以非常偶然的方式关注了微信公众号“面向对象”,本以为这个公众号主要以分享面向对象编程的干货为主,不料其乃实实在在的猿圈相亲平台.通过查看公开资料, ...
- JavaScript基础——使用JavaScript对象
JavaScript有许多内置对象,如Number(数字).Array(数组).String(字符串).Date(日期)和Math(数学).这些内置对象都有成员属性和方法.除了JavaScript对象 ...
随机推荐
- 成熟的 Git 分支模型
个人博客原文: 成熟的 Git 分支模型 今天介绍一下工作中会用到的 Git 分支模型. 先贴上图以表敬意 闲言 在学校不管是自己写课程设计还是给老师做项目,有 2 到 3 个人一起协作开发时就会使用 ...
- nginx~linux下的部署
一些概念 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄 ...
- hadoop2 datanode启动异常解决步骤
1.datanode起不来2016-11-25 09:46:43,685 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid d ...
- Spring Boot 2.x(九):遇到跨域不再慌
什么是跨域 首先,我们需要了解一下一个URL是怎么组成的: // 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址 http: + // + www.baidu.com + :8080/ ...
- 超级账本fabric原理之gossip详解
Goosip协议 去中心化.容错和最终一致性的算法 信息达到同步的最优时间:log(N). 功能: 节点发现 数据广播 gossip中有三种基本的操作: push - A节点将数据(key,value ...
- BootStrap之 提示工具(Tooltip)插件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mysql服务器主从数据库同步配置
首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务. 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台从机. 1. ...
- Java开发笔记(三)Java帝国的特种官吏
上一篇文章介绍了Java工程的帝国区划,末尾给出了一段Java代码例子,这个代码虽然勉强能看懂,但是有些细节令人不甚了了.比如说“// 参观朱雀台”为何能够直接跟在当前行后面?“System.out. ...
- Android项目刮刮奖详解(二)
Android项目刮刮奖详解(一) 前言 上期我们简单地实现了一个画板的功能,用户可以在上面乱写乱画,其实,刮刮奖也是如此,用户刮奖的时候也是乱写乱画的. 刮刮奖原理 一共有两层画布,底层画布存放中奖 ...
- Python全栈开发之---mysql数据库
1.数据库的安装和连接 #数据库安装 pip install PyMySQL #数据库操作 import pymysql db = pymysql.connect("数据库ip", ...