• JavaScript 63 JavaScript 对象 63.1 JavaScript 对象定义


    JavaScript

    63 JavaScript 对象

    63.1 JavaScript 对象定义

    在 JavaScript 中,对象是王。如果您理解了对象,就理解了 JavaScript。

    在 JavaScript 中,几乎“所有事物”都是对象。

    • 布尔是对象(如果用 new 关键词定义)
    • 数字是对象(如果用 new 关键词定义)
    • 字符串是对象(如果用 new 关键词定义)
    • 日期永远都是对象
    • 算术永远都是对象
    • 正则表达式永远都是对象
    • 数组永远都是对象
    • 函数永远都是对象
    • 对象永远都是对象

    所有 JavaScript 值,除了原始值,都是对象。

    63.1.1 JavaScript 原始值

    原始值指的是没有属性或方法的值。

    原始数据类型指的是拥有原始值的数据。

    JavaScript 定义了 5 种原始数据类型:

    • string
    • number
    • boolean
    • null
    • undefined

    原始值是一成不变的(它们是硬编码的,因此不能改变)。

    假设 x = 3.14,能够改变 x 的值。但是无法改变 3.14 的值。

    在这里插入图片描述

    63.1.2 对象是包含变量的变量

    JavaScript 变量能够包含单个的值:

    var person = "Bill Gates";
    
    • 1

    对象也是变量。但是对象能够包含很多值。

    值按照名称 : 值对的形式编写(名称和值以冒号分隔)。

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
    
    • 1

    JavaScript 对象是命名值的集合。

    63.1.3 对象属性

    JavaScript 对象中的命名值,被称为属性

    在这里插入图片描述

    以名称值对书写的对象类似于:

    • PHP 中的关联数组
    • Python 中的字典
    • C 中的哈希表
    • Java 中的哈希映射
    • Ruby 和 Perl 中的散列
    63.1.4 对象方法

    方法是可以在对象上执行的动作。

    对象属性可以是原始值、其他对象以及函数。

    对象方法是包含函数定义的对象属性。

    在这里插入图片描述

    JavaScript 对象是被称为属性和方法的命名值的容器。

    63.1.5 创建 JavaScript 对象

    通过 JavaScript,能够定义和创建自己的对象。

    有不同的方法来创建对象:

    • 定义和创建单个对象,使用对象文字。
    • 定义和创建单个对象,通过关键词 new。
    • 定义对象构造器,然后创建构造类型的对象。

    ECMAScript 5 中,也可以通过函数 Object.create() 来创建对象。

    63.1.6 使用对象字面量

    创建对象最简单的方法。

    使用对象文字,可以在一条语句中定义和创建对象。

    对象文字指的是花括号 {} 中的名称:值对(比如 age:62)。

    下面的例子创建带有四个属性的新的 JavaScript 对象:

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
    
    • 1

    空格和折行不重要。对象定义可横跨多行:

    var person = {
        firstName:"Bill",
        lastName:"Gates",
        age:62,
        eyeColor:"blue"
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    63.1.7 使用 JavaScript 关键词 new

    下面的例子也创建了带有四个属性的新的 JavaScript 对象:

    var person = new Object();
    person.firstName = "Bill";
    person.lastName = "Gates";
    person.age = 50;
    person.eyeColor = "blue"; 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    上面的两个例子结果是一样的。无需使用 new Object()

    出于简易性、可读性和执行速度的考虑,请使用第一种创建方法(对象文字方法)。

    63.1.8 JavaScript 对象是易变的

    对象是易变的:它们通过引用来寻址,而非值。【传递址】

    如果 person 是一个对象,下面的语句不会创建 person 的副本:

    var x = person;  // 这不会创建 person 的副本。
    
    • 1

    对象 x 并非 person 的副本。它就是 person。x 和 person 是同一个对象。

    对 x 的任何改变都将改变 person,因为 x 和 person 是相同的对象。

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
     
    var x = person;
    x.age = 10;           // 这将同时改变 both x.age 和 person.age
    
    • 1
    • 2
    • 3
    • 4

    **注释:**JavaScript 变量不是易变的。只有 JavaScript 对象如此。

  • 相关阅读:
    nginx try_files流程解析
    Python数据攻略-SQL和Mongodb的CRUD方法汇总
    关系型数据库之MySQL8——由内而外的深化全面学习
    5. LSTM的C++实现
    Win10如何清理无效注册表
    微信反复读取你的相册!官方回应:为便于聊天时快速发图,最新版本将取消...
    Session会话追踪的实现机制
    spring中事务隔离指什么呢?
    【Try to Hack】宽字节注入
    js数组根据同一id进行分组
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/127662911