<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>ES6 assign</title>
<style type="text/css">
html {height: 100%;}
body {width: 200px;height: 100%;position: relative;padding: 0;margin: 0;}
</style>
</head>
<body>
<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script>
<script>
var name = "zhangsan";
var password = "1111111";
var obj = {
name,
password,
arr: [1, 2, 3, 4],
sayName() {
console.log(this.name);
}
};
var obj1 = {
age: 20,
name: 'xutongbao'
};
//花括号叫目标對象,後面的obj、obj1是源對象。對象合并是指:将源對象裡面的屬性添加到目标對象中去,若兩者的屬性名有沖突,後面的将會覆寫前面的
var nObj = Object.assign({}, obj, obj1);
console.log(nObj); //{name: "xutongbao", password: "1111111", arr: Array(4), sayName: ƒ, age: 20}
nObj.arr.push(5);
console.log(obj.arr); //[1, 2, 3, 4, 5] 此處說明assign是淺拷貝
var arr11 = Object.assign([1,2,3], [4,5]);
console.log(arr11); //[4,5,3] 對象是根據屬性名來對應,數組是根據索引号來對應
</script>
</body>
</html>