js对象

首先创建如下对象

var obj = {
  a: 2
}

obj.a  //2
obj["a"]  //2

第一种方式叫做属性访问,第二种方式叫做键访问,实际上它们访问的是同一个地方

可计算属性名

当需要用表达式来计算属性时,obj[""]这种属性访问词就可以派上用场了

以下例子

var a = "hello"

var obj = {}

obj[a+"c"] = "good"

console.log(obj)  //{helloc: "good"}

ES6的浅拷贝assign

ES6的assign可以很轻松的实现浅拷贝

var a = {
    hello: "world"  
}

var b = {
    c: "good"
}

var c = {
    hello: "hello"
}

var d = {
    a: a,
    b: b,
    c: c
}

var copyD = Object.assign({}, d)

copyD.a === a  //true

copyD.a === d.a  //true

assign的原理是使用“=”操作符来赋值

属性描述符

ES5开始js的所有属性都具备了属性描述符
以下例子

var a = {
    x: 1
}

Object.getOwnPropertyDescriptor(a, "x")
//{
    value: 1, 
    writable: true, 
    enumerable: true, 
    configurable: true
  }

ES6数组遍历for of

ES6增加了数组遍历的方法for...of

如下例子

let arr = [1, "good", function a(){
    console.log(a)
}]

for(let v of arr){
    console.log(v)
}
//1
  good
  ƒ a(){
      console.log(a)
  }

注意:想要在Object对象使用for...of循环需要给你要操作的对象定义@@iterator

你可能感兴趣的:(js对象)