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)是个特殊的类型,它是通过传地址来赋值和传递,但是它是通过传值比较的

猜你喜欢

转载自www.cnblogs.com/z-lin/p/10961369.html