e 1 year ago
parent
commit
af5db8e3dd
1 changed files with 79 additions and 0 deletions
  1. 79 0
      JS高级/11.对象的扩展方法.html

+ 79 - 0
JS高级/11.对象的扩展方法.html

@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+  </head>
+  <body>
+    <script>
+      // 1.Object.is() 判断两个值是否全等(===)
+      console.log(Object.is(12, 12));
+      console.log(Object.is(13, "13"));
+      // 2.Object.assign() 对象合并;后面传入的对象若于前面传入的对象有相同值得时候 则覆盖,其余的合并
+      let obj1 = {
+        name: "Lucy",
+        age: 12,
+      };
+      let obj2 = {
+        name: "LiLi",
+        address: "哈尔滨",
+      };
+    //   console.log([])
+    // console.log({})
+      console.log(Object.assign(obj1, obj2));
+      console.log({...obj1,...obj2},'合并');
+      let school = {
+        address: "哈尔滨",
+      };
+      var city = {
+        name: ["北京", "上海", "广州"],
+      };
+      // 3.Object.setPrototypeOf() 给当前对象原型中设置属性
+      console.log(Object.setPrototypeOf(school, city));
+      let obj3 = Object.setPrototypeOf(school, city);
+      // 4.Object.getPrototypeOf() 获取当前对象中的原型属性
+      console.log(Object.getPrototypeOf(school));
+
+      // es8中新增属性
+      let obj4 = {
+        name: "图图",
+        age: 3,
+      };
+      // 5.Object.keys() 返回当前可枚举对象的属性键值对数组
+      console.log(Object.keys(obj4), "keys");
+      // 6.Object.entries() 返回当前可枚举对象的[key,value]数组
+      console.log(Object.entries(obj4), "entries");
+      // 7.Object.values() 返回当前可枚举对象的属性值数组
+      console.log(Object.values(obj4), "values");
+      // 8.Object.getOwnPropertyDescriptors() 返回当前传入对象的自身属性
+      console.log(Object.getOwnPropertyDescriptors(obj4));
+      // 9.Object.create() 在原型上去创建一个新对象
+      let obj5 = Object.create(
+        null,
+        {
+          name: {
+            value: "喜羊羊",
+            enumerable: true,
+            configurable: true,
+            writable: true,
+          },
+          age: {
+            value: 5,
+            enumerable: true,
+            configurable: true,
+            writable: true,
+          },
+        }
+      );
+      console.log(obj5);
+      console.log(Object.getOwnPropertyDescriptors(obj5));
+      let obj6 = {
+        vase:[1,2,3,4,5]
+      }
+      let obj7 = Object.setPrototypeOf(obj5,obj6);
+      console.log(obj7);
+      console.log(Object.getPrototypeOf(obj7));
+    </script>
+  </body>
+</html>