引言

对象是JavaScript的基本数据类型。
对象是一种复合值:将很多值(原始值或者其他对象)聚合在一起,通过名字访问这些值。
对象可以看做属性的无序集合,每个属性都是一个名/值对。属性名是字符串。
对象还可以看做字符串到值的映射。
除了可以保持自有的属性,对象还可以从一个称为原型的对象继承属性--“原型式继承”是JavaScript的核心特征。

对象的动态性

对象可以新增属性,也可以删除属性。
通常用于模拟静态对象以及静态类型语言种的“结构体”(struct)。有时它们也用做字符串的集合(忽略名/值对种的值)。

对象的可变性

JavaScript中通过引用而非值来操作对象。

常见用法

对象属性最常用的用法是:

  1. 创建(create)
  2. 设置(set)
  3. 查找(query)
  4. 删除(delete)
  5. 检测(test)
  6. 枚举(enumerate)

属性特性

在JavaScript对象的属性中,除了名字和值之外,还有一个与之相关的值,称为“属性特性”(property attribute):

  • 可写(writable attribute) -- 表明是否可以设置该属性的值;
  • 可枚举(enumerable attribute) -- 表明是否可以通过for/in循环返回该属性;
  • 可配置(configurable attribute) -- 表明是否可以删除或修改该属性。

对象特性

除了包含属性之外,每个对象还拥有三个相关的对象特性(object attribute):

  • 对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象;
  • 对象的类(class)是一个表示对象类型的字符串;
  • 对象的扩展标记(extensible flag)指明了(在ECMAScript 5中)是否可以指向该对象添加新属性。

三类JavaScript对象和两类属性

三类JavaScript对象

  1. 内置对象(native object)是由ECMAScript规范定义的对象或类,例如,数组、函数、日期和正则表达式都是内置对象。
  2. 宿主对象(host object)是由JavaScript解释器所嵌入的宿主对象(比如Web浏览器)定义的;
  3. 自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象;

    两个属性

  4. 自有属性(own property)是直接在对象中定义的属性;
  5. 继承属性(inherited property)是在对象的原型对象中定义的属性。

JavaScript对象类型之简单介绍的更多相关文章

  1. C++map类型 之 简单介绍

    一:map的前世今生 (1)从关联容器与顺序容器说起.关联容器通过键(key)存储和读取元素.而顺序容器则通过元素在容器中的位置顺序存储和訪问元素(vector,queue,stack,list等). ...

  2. JavaScript对象类型之创建对象

    引言 JavaScript中,可以通过对象直接量,关键字new(ECMAScript 5中的)Object.create(),函数来创建对象. 对象直接量 JavaScript中使用对象直接量来创建对 ...

  3. Python中的对象类型的初步介绍

    一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相 ...

  4. JavaScript对象类型判断注意点

    注意点 不要使用 new Number() . new Boolean() . new String() 创建包装对象:用 parseInt() 或 parseFloat() 来转换任意类型到numb ...

  5. JavaScript(一)——简介(简单介绍)

    1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle收购了),J ...

  6. Swift中的Result 类型的简单介绍

    Swift 5引入了一个新的Result类型, 它使用枚举来处理异步函数的结果. 苹果文档对该类型的描述: A value that represents either a success or a ...

  7. 关于javascript对象的简单记忆法

    关于javascript对象方法的简单记忆法(个人整理) string对象: 大号小号闪烁加链接./big/small/blink/link/ 粗体斜体打字删除线./bold/italics/fixe ...

  8. javaScript系列 [02]-javaScript对象探析

    [02]-javaScript对象探析 题记:多年前,以非常偶然的方式关注了微信公众号“面向对象”,本以为这个公众号主要以分享面向对象编程的干货为主,不料其乃实实在在的猿圈相亲平台.通过查看公开资料, ...

  9. JavaScript基础——使用JavaScript对象

    JavaScript有许多内置对象,如Number(数字).Array(数组).String(字符串).Date(日期)和Math(数学).这些内置对象都有成员属性和方法.除了JavaScript对象 ...

随机推荐

  1. 【Vue】IView之table组件化学习(二)

    最基本的绑定table是这样的,需要columns和data两个属性. <template> <Card> <h4>表格栗子</h4> <Tabl ...

  2. 关于mybatis中typeHandler的两个案例

    在做开发时,我们经常会遇到这样一些问题,比如我有一个Java中的Date数据类型,我想将之存到数据库的时候存成一个1970年至今的毫秒数,怎么实现?再比如我有一个User类,User类中有一个属性叫做 ...

  3. 【单例模式】java实现

    概述:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 关键点: 构造函数不对外开放,一般为private. 通过一个静态方法或者枚举返回单例类对象. 确保单例类的对象有且只有一个,尤 ...

  4. mybatis注解@Param对JavaBean的作用

    当参数是一个JavaBean时,如果不用@Param且sql里获取变量用#{},如@Select("SELECT id,USERNAME,uname from uk_user where d ...

  5. springboot+mybatis+dubbo+aop日志第三篇

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等等. Spring AOP模块提供截取拦截应用程序的拦截器,例如,当执行方法时,可以在执行方法之前或之后添加 ...

  6. leetcode — decode-ways

    /** * Source : https://oj.leetcode.com/problems/decode-ways/ * * * A message containing letters from ...

  7. 设计模式总结篇系列:享元模式(Flyweight)

    我们都知道,Java中的String类具有如下特性:String是一个不可变类,当直通过用字符串方式使用String对象时,Jvm实际上在内存中只存有一份,且存在字符串常量池中.当对字符串直接进行修改 ...

  8. -1-7 java 网络编程基本知识点 计算机网络 TCP/IP协议栈 通信必备 tcp udp

    计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 ...

  9. Django学习笔记(8)——前后台数据交互实战(AJAX)

    这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...

  10. 如何正确使用Java泛型

    前言 Java 1.5之前是没有泛型的,以前从集合中读取每个对象都必须先进行转换,如果不小心存入集合中对象类型是错的,运行过程中转换处理会报错.有了泛型之后编译器会自动帮助转换,使程序更加安全,但是要 ...