ES6 对象的创建及操作

对象的创建方式包括 以下3种:(new Object(),new 构造函数的形式 , Object.create(properties),)

"use strict"

// 方式1

var person = new Object()

person["name"]="jimmy"

console.log(person.name)

person.age=20

console.log(person.age)

console.log(person)

 var myCar = new Object()

var propertyName = "make";

myCar[propertyName] = "Ford";

var propertyName1 = "year"

myCar[propertyName1]=1990

console.log(myCar.make)

console.log(myCar.year)

// 方式2

//构造函数

function Car(){

this.make = "Ford"

this.model = "F123"

}

var obj = new Car()

console.log(obj.make)

console.log(obj.model)

// 方式3 Object.create

var roles = {

type:"Admin",//Default value of properties

displayType:function(){

  console.log(this.type);//Mehtod which will display type of role

}

}

var super_role = Object.create(roles);

super_role.displayType();

var guest_role = Object.create(roles);

guest_role.type = "Guest";

guest_role.displayType();

 var testObj = Object.create(null)

testObj.type = "xx"

testObj.displayType = new Function("a","console.log(a)");

testObj.displayType("abc")

//object assign

var det = {name:"Tom",ID:"E1001"};

// 初始化对象并且给默认值

var copy = Object.assign({},det);

console.log(copy);

for(let val in copy){

console.log(copy[val]);

}

//

var properties = {

name: "john",

ID :"E1002",

age: 28

};

var jo = Object.create(properties);

console.log(jo.name);

console.log(jo.ID);

var john = Object.assign(properties);

console.log(john);

var john1 = Object.assign(john,det);

console.log(john1);

//合并对象,合并对象时大对象没有做拷贝的操作,而是直接引用了对象的指针

var o1 = {a:10};

var o2 = {b:20};

var o3 = {c:30};

// 将值合并到o1 并且返回o1 , 返回值就是被合并的对象

var obj = Object.assign(o1,o2,o3);

console.log(obj);

console.log(o1);

if(o1 === obj){

console.log("o1 is the same as the obj");

}else{

console.log("o1 is different from obj");

}

// o2的值没有改变

console.log(o2);

 var o1 = {a:10};

var obj = Object.assign(o1);

obj.a++;

console.log("Value of 'a' in the Merged object after increment");

console.log(obj.a);

console.log("Value of 'a' in the Original Object after increment");

console.log(o1.a);

 // delete properties 删除对象中的属性

 var myobj = new Object;

myobj.a = 5;

myobj.b = 12;

 console.log("before deleting the myobj value is :");

console.log(myobj);

delete myobj.a

console.log("after deleting the myobj value is :");

console.log(myobj);

 //比较

var val1 = {name:"Tom"};

var val2 = {name:"Tom"};

console.log(val1 == val2)//return false

console.log(val1 === val2)//return false

var val1 = {name:"Tom"};

var val2 = val1;

console.log(val1 == val2);

console.log(val1 === val2);

var emp = {name:'John',Id:3}

var {name,Id} = emp

console.log(name)

console.log(Id)

原文地址:https://www.cnblogs.com/codetime/p/7381798.html