zsydgithub 1 жил өмнө
parent
commit
96beb7f0e8

+ 48 - 2
es6/13_例题.html

@@ -40,7 +40,7 @@
 
 
 
-    var name = 'window'
+    /* var name = 'window'
     function Person(name) {
       this.name = name
       this.foo1 = function () {
@@ -72,13 +72,59 @@
     person1.foo4()() // p1 
     person1.foo4.call(person2)() // p2
     person1.foo4().call(person2) //p1
-    //p1 p2 p1 p1 win win p2 p1 p2 p1
+    //p1 p2 p1 p1 win win p2 p1 p2 p1 */
+
+
+
 
 
 
+    /* function Foo() {
+      console.log(this); //Foo{}
+      this.x = 10;
+      console.log(this); //Foo{x : 10}
+    }
+    Foo.prototype.getX = function () {
+      console.log(this);  //Foo{x:10}
+      console.log(this.x); //10
+    }
+    var foo = new Foo();
+    console.log(foo); // Foo{x : 10}
+    foo.getX(); */
+
+
 
 
 
+    var name = 'window'
+    function Person(name) {
+      this.name = name
+      this.obj = {
+        name: 'obj',
+        foo1: function () {
+          return function () {
+            console.log(this.name)
+          }
+        },
+        foo2: function () {
+          return () => {
+            console.log(this.name)
+          }
+        }
+      }
+    }
+    var person1 = new Person('person1')
+    var person2 = new Person('person2')
+    person1.obj.foo1()() //win 
+    person1.obj.foo1.call(person2)() //win
+    person1.obj.foo1().call(person2) //p2
+    person1.obj.foo2()() //obj
+    person1.obj.foo2.call(person2)() //p2
+    person1.obj.foo2().call(person2)// obj
+    // obj obj p2 p1 p1 p2
+    // win win p2 p1 p2 p1
+    //win win p2 p1 p1 p2
+    // win win p2 obj p2 obj
 
   </script>
 </body>

+ 75 - 0
es6/14_对象新增的方法.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+
+<body>
+  <script>
+    /* var obj = {
+      name: 'zs',
+      age: 18,
+      eat: function () {
+        console.log('eat')
+      }
+    }
+    var obj1 = {
+      name: 'lisi',
+      school: 'xiwangxiaoxue'
+    } */
+    /* 合并对象 用obj1区覆盖obj */
+    // var obj2 = Object.assign(obj,obj1)
+    // console.log(obj2)
+
+    /* 合并对象 */
+    // var obj3 = {...obj1,...obj}
+    // console.log(obj3)
+
+
+    /* Object.setPrototypeOf 设置原型对象 */
+    /* Object.getPrototypeOf 获取原型对象 */
+    /* let obj1 = {
+      name: 'harbin'
+    }
+    let city = {
+      area: ['shenyang','dalian','changchun']
+    }
+    console.log(Object.setPrototypeOf(obj1,city))
+    console.log(Object.getPrototypeOf(obj1)) */
+
+    /* 判断是否相等 */
+    /* console.log(Object.is(1,-1))
+    console.log(Object.is(-0,0))
+    console.log(Object.is(NaN,NaN)) */
+    // console.log(0 === -0)
+
+    /* 返回一个对象的所有自身属性的描述对象 */
+    /* const obj = {
+      a: 1
+    }
+    console.log(Object.getOwnPropertyDescriptors(obj)) */
+
+    /* const obj = {
+      a: 1,
+      b: 2
+    }
+    console.log(Object.values(obj))
+    console.log(Object.entries(obj)) */
+
+    /* 检查一个对象自身是否拥有给定的属性 不考虑原型链 */
+    const obj = Object.create({
+      a: 1
+    })
+    obj.b = 2
+    console.log(Object.hasOwn(obj,'a'))
+    console.log(Object.hasOwn(obj,'b'))
+
+
+  </script>
+</body>
+
+</html>