• 对象


    1. 什么是对象:
    - 其实就是一种事物的描述,在程序中对象是一种数据类型
    - 程序中的对象主要用来:存储信息
    2.js的对象的分类
        - 内置对象:
            - ES提供可以直接被使用的对象,已经是一个具体的实例了,不需要创建
            - Math对象,数学对象
        - 本地对象:
            - 其实只是ES提供的一种类方法,需要被实例化之后,才能使用
            - 需要被new执行之后,才能使用
            - String,Object,Array,Number,Boolean,RegExp,Date
        - 宿主对象:
            - 由浏览器或W3C提供的运行ES的环境,所带的对象
                - BOM:window,DOM:document
            - 所有的自定义对象
                - 天天都在学
        - 注:实例化:转化成实际的案例
    补充关键字:delete,用来删除自定义对象的属性
        - delete
            - `delete 对象.属性名`;
        - 只能删除自定义对象的属性,且一次只能删一个属性
    3. 创建对象:
    ①字面量:
        ```js
        var o1 = {}
        ```
    ② 构造函数:
        ```js
        var o2 = new Object();
        ```
     4. 对象的意义和本质
    ①意义(功能)
        - 存储数据(信息)
        - 编程(面向对象编程)
    ②本质
        - 键值对
    5. 对象的操作
    ①点语法(.)
        - 对象.属性名
    注:只能访问固定的属性名,不能使用变量作为属性名
    console.log(obj.name);
    ②中括号语法:[]
        // 属性名为变量时,属性名为不确定的值时
        var attr = "name";
        console.log(obj[attr]);
        // 属性名为具体的值,不是变量时,也可以用[]语法,但是这个值必须用引号包裹
        console.log(obj["name"]);
    ③数组的遍历:
    //for-in不是循环,是一个遍历语句,遍历对象
    //枚举对象所有的属性,根据枚举出的属性,获取属性值
       for(var i in obj){
             console.log(i);
             console.log(obj[i]);
         }
    - 注意:任何两个对象都不相等
                 如果相等了,意味着就是一个对象
    补充:对象的补充-栈堆
    - 内存
        - 用来运行数据的空间,内部又区分了不同的存储方式(栈和堆)
            - 栈:一般用来存储变量名和地址,空间小,稳定,不可修改
            - 堆:一般用来存储数据,空间大,可被修改
            - 关系:一一对应,多对一,不能一对多
            - 存取规则:
                - 栈:先进后出:杯子
                - 堆:先进先出:掉底的杯子
    - 数据类型的分类
        - 基本类型(值传递)
            - 数据就在栈中
            - 不存在深浅拷贝,默认就是深拷贝
        - 引用类型(引用传递的数据)
            - 栈中只保存了一个地址,地址指向堆中的某个数据
            - 存在深浅拷贝,默认是浅拷贝
                - 目前会有一些影响
            - 如何实现深拷贝?
                - for-in遍历属性
     
  • 相关阅读:
    虚拟机三种虚拟网络的区别
    关于 三次握手和四次挥手 的生动解析
    Tkinter布局管理器
    F#周报2019年第4期
    F#周报2019年第3期
    ML.NET 0.9特性简介
    F#周报2019年第2期
    浏览器保存数据的几种方法
    F#周报2019年第1期
    ML.NET教程之客户细分(聚类问题)
  • 原文地址:https://www.cnblogs.com/yh-3175339026/p/12796492.html
Copyright © 2020-2023  润新知