一、对象的基本概念

对象是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. Spring Cloud使用Zuul网关时报错

    当开启了Eureka集群后,每创建一个服务都要往这两个集群中进行注册否则访问时会产生500

  2. Java 新特性总结——简单实用

    lambda表达式 简介 lambda 表达式的语法 变量作用域 函数式接口 内置函数式接口 默认方法 Stream(流) 创建 stream Filter(过滤) Sorted(排序) Map(映射 ...

  3. CSDN怎么一键转载别人的博客

    在参考"如何快速转载CSDN中的博客"后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考 ...

  4. py+selenium 报错NameError: name 'NoSuchElementException' is not defined【已解决】

     报错:NameError: name 'NoSuchElementException' is not defined  如图 解决方法: 头部加一句:from selenium.common.exc ...

  5. springboot+mongodb 按日期分组分页查询

    List<Integer> types = new ArrayList<>(); types.add("条件1"); types.add("条件2 ...

  6. 【Gym - 100923A】Por Costel and Azerah(思维水题)

    Por Costel and Azerah Descriptions 给你n个数 问你,有多少个子序列 的和是偶数 Example Input 233 10 124 2 Output 33 题目链接 ...

  7. Kotlin之var和val区别

    var 和 val 是Kotlin的两个声明变量的关键字, var声明的变量是一个可变的变量,而val声明的变量是一个只读的变量(类似于java中的final变量)

  8. C#各版本新增加功能

    本系列文章主要整理并介绍 C# 各版本的新增功能. C# 8.0 C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前 ...

  9. [leetcode] 238. Product of Array Except Self (medium)

    原题 思路: 注意时间复杂度,分别乘积左右两边,可达到O(n) class Solution { public: vector<int> productExceptSelf(vector& ...

  10. FSCapture 取色工具(绿色版 )

    百度云: 链接:http://pan.baidu.com/s/1kV7BhVD 密码:zel3