zoukankan      html  css  js  c++  java
  • js复杂数据类型------对象

    对象:无序的键值对的集合

    创建对象的两种方式

    字面量: var student = {};建了一个空对象

    内置构造函数  var student = new Object();

    对象的赋值和取值

    取值:对象名.属性名 ------如果存在,返回响应值;如果不存在,undefined

         对象名.方法名------直接获取,返回函数体,对象名.方法名(),即调用这个方法

    赋值(类似数组) 对象名.属性名-----存在,直接覆盖,不存在,新建属性,在赋值

    操作对象的两种语法

    1. 点语法  对象名.属性名: 简单方便,不支持变量
    2. 中括号语法: 对象名[‘属性名’] 灵活,支持字符串和变量

       对象名[变量名] :通过变量值找到属性名,然后再去对象里面查找对应的值

    对象的遍历

    for(var k in obj){……}

    k键(属性名)  obj[k] 值(属性值)

    批量创建对象

    1. 工厂函数:本质就是一个函数,将创建对象的代码进行封装成函数

    特点:创建出来的类型都时Object类型

    function createObject()({

    var obj = {……};

    return onj;

    }

    注意点:1.返回值---调用时通过传过来的实参对对象进行具体的赋值

    对象的方法中,this指的是当前的对象

    1. 自定义构造函数

    特征:需要结合new使用,创建出来的对象有自己的类型

    构造函数中new的作用

    1. 建立一个新对象,并指定类型
    2. 让构造函数的this指向新建的构造函数
    3. 执行构造函数
    4. 返回新对象(实例)

    构造函数的特点:

    1. 构造函数,就是一个函数
    2. 首字母大写
    3. Js中内置了一些Array Object
    4. 可以自定义

    补充:值类型和引用类型

    值类型(简单数据类型):在变量中存储的是本身,赋值时,赋值的也是值本身,值传递时,传的也是值本身

    引用类型(复杂数据类型):在变量中存储的是内存地址,赋值时,赋值的也是内存地址,传递时,传的也是内存地址

    注意点:javascript中字符串(string)是个特殊的类型,它是通过传地址来赋值和传递,但是它是通过传值比较的

  • 相关阅读:
    newcoder 筱玛的迷阵探险(搜索 + 01字典树)题解
    str&repr的使用&format模板的自定义
    内置函数的补充与getattrebuit & item系列
    python几种常用模块
    面向对象的反射&动态导入模块
    面向对象的封装&定制数据类型
    面向对象的多态
    面向对象的继承
    面向对象的属性与方法
    面向对象的属性及类的增删改查
  • 原文地址:https://www.cnblogs.com/z-lin/p/10961369.html
Copyright © 2011-2022 走看看