一、对象的基本概念

对象是JS的基本数据类型,对象是一种复合值,它将很多值(原始值或者对象)聚合在一起,可通过名字访问这些值,对象也可看做是属性的无序集合,每个属性都是一个名/值对。对象不仅仅是字符串到值得映射,除了可以保持自由的属性,JS对象还可以从一个从一个称为原型的对象继承属性,对象的方法通常是继承的属性。这种原型式继承是JS的核心特征。

JS对象是动态的,可以新增属性也可以删除属性,但是他们常用来模拟静态对象以及静态类语言中的“结构体”。

除了字符串,数字,true,false,null和undefined之外,JS中的值都是对象。尽管字符串,数字和布尔值不是对象,但他们的行为和不可变对象非常相似。

对象是可变的。通过引用而非值来操作对象。如果变量x是指向一个对象的引用,那么执行代码var y = x;变量y也是值向同一个对象的引用,而不是这个对象的副本。通过执行变量y修改这个对象同样会对变量y造成影响。

对象常见的方法是创建,设置,查找,删除,检测和枚举他的属性。

属性包括名字和值。属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性,举个栗子:

var a = {
'action': 'mone',
'name': 'lisa',
'name': 'sunny'
}
console.log(a)
//action: "mone"
//name: "sunny"

但是值可以是任意JS的值,或者可以是一个getter()或者setter()函数(或者两者都有)。除了名字和值之外,每个属性还有一些与之相关的值,称之为‘属性特性’:

可写(writable attribute): 表明是否可以设置该属性的值。

可枚举(enumerable attribute): 表明是否可以通过for/in循环返回该属性。

可配置(configurable attribute):表明是否可以删除或修改该属性。

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

1 对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象。

2 对象的类(class)是一个标识对象类型的字符串。

3 对象的扩展标记指明了在ECMAScript5中是否可以向该对象添加新属性。

最后用以下术语来对三类JS中对象和两类属性作区分:

1 内置对象是由ECMAScript规范定义的对象或类。比如数组,函数,日期,和正则都是内置对象。

2 宿主对象是由JS解释器所嵌入的宿主环境定义的。客户端JS中表示网页结构的HTMLElement对象

javaScript基础-04 对象的更多相关文章

  1. javascript基础04

    javascript基础04 1.循环语句 1.While 语句: while (exp) { //statements; } var i = 1; while(i < 3){ alert(i) ...

  2. JavaScript学习04 对象

    JavaScript学习04 对象 默认对象 日期对象Date, 格式:日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用): 2.英文-数值格式:月 日,公元年 [时:分: ...

  3. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

  4. javascript基础(六)对象

    原文http://pij.robinqu.me/ JavaScript Objects 创建对象 对象直接量 var o = { foo : "bar" } 构造函数 var o ...

  5. JavaScript基础--DOM对象(十三):(windows对象:history\location\navigator\screen\event)

    DOM编程1.为什么要学习DOM(1) 通过dom编程,我们可以写出各种网页游戏(2)dom编程也是ajax的重要基础2.DOM编程介绍DOM = Document Object Model(文档对象 ...

  6. javascript基础之对象

    老师的博客:https://www.cnblogs.com/liwenzhou/p/8004649.html#autoid-1-8-6 JavaScript中的所有事物都是对象:字符串.数字.数组.日 ...

  7. JavaScript基础--DOM对象加强篇(十四)

    1.document 对象 定义:document对象代表的整个html文档,因此可以去访问到文档中的各个对象(元素)document重要的函数 1.1 write 向文档输出文本或js代码 1.2 ...

  8. javascript基础知识-对象

    javascript创建对象有三种方法: 1)对象直接量 例:var empty = {}; var point = {x:1,y:4}; var book = { "main title& ...

  9. javascript基础-js对象

    一.js对象的创建 1.普通最简单的方式 var teacher = new Object( ); teacher.name = "zhangsan"; teacher.age = ...

随机推荐

  1. python PEP8常用规范

    python 常用PEP8规范   一 代码编排 1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号 ...

  2. python数据库-MongoDB的基本使用(54)

    一.MongoDB 创建数据库 语法:MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. > use Hero ...

  3. 聊聊Java String.intern 背后你不知道的知识

    Java的 String类有个有意思的public方法: public String intern() 返回标准表示的字符串对象.String类维护私有字符串池. 调用此方法时,如果字符串池已经包含等 ...

  4. 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析

    写着前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章,比如: ...

  5. 【题解】危险的工作-C++

    Description 给出一个数字N,N<=11.代表有N个人分担N个危险的工作. 每个人对应每个工作,有个危险值 每个人担任其中一项,问每个人危险值相加,最小值是多少. Input 第一行给 ...

  6. Nodejs监控Apple召回计划&邮件提醒

    最近,我的MacBook Pro 2015款13寸电池膨胀了 把笔记本平放在桌面,四个脚中的前两个无法落地,笔记本盖合上之后,屏幕上会印上键盘的纹路,也就是说,笔记本C面D面变形了,已经购买超过3年, ...

  7. hive show databases 添加条件

    show databases like 'test012301' ; 通配符: show databases like 'a*';

  8. 消费端如何保证消息队列MQ的有序消费

    消息无序产生的原因 消息队列,既然是队列就能保证消息在进入队列,以及出队列的时候保证消息的有序性,显然这是在消息的生产端(Producer),但是往往在生产环境中有多个消息的消费端(Consumer) ...

  9. SSM-员工管理系统Demo---带分页和校验(含源码)

    页面展示: 前端JSP: <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  10. 【MySQL】日常小技巧汇总,更新中……

    创建表时修改自增主键,添加 AUTO_INCREMENT=<Number> ,例如: CREATE TABLE `table_name` ( `id` int(11) unsigned N ...