e 1 年之前
父节点
当前提交
96f07d04fa
共有 1 个文件被更改,包括 63 次插入0 次删除
  1. 63 0
      JS初级/DOM/25.修改this指向.html

+ 63 - 0
JS初级/DOM/25.修改this指向.html

@@ -0,0 +1,63 @@
+<!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>
+      function fn1(x, y) {
+        var sum = x + y;
+        console.log(sum, "sum");
+        console.log(this, "this");
+        console.log(this.name, "name");
+      }
+      var obj = {
+        name: "Lucy",
+      };
+      fn1(2, 3);
+      fn1.call(obj, 2, 3);
+      //单行注释
+      /**
+       * 多行注释
+       */
+      /** 修改this指向
+       * 1.call(修改this指向,参数1,参数2...)
+       * 2.apply(修改this指向,[参数1,参数2,...])
+       * 3.bind(修改this指向,参数1,参数2)()
+       */
+      /**
+       * call、apply和bind区别
+       * 1.bind无法进行函数调用,call和apply可以直接进行函数调用;
+       * 2.call从第二项开始,要传的参数逐个传入;
+       * 3.apply从第二项开始,要传的参数在数组中逐个传入
+      */
+      function fn2(a, b) {
+        var sum = a * b;
+        console.log(sum, "sum1");
+        console.log(this, "this1");
+        console.log(this.sex, "sex");
+      }
+      var obj1 = {
+        sex: "女",
+        address: "11111",
+      };
+      fn2(4, 5);
+      fn2.apply(obj1, [4, 5]);
+
+      function fn3(i,j) {
+        var sum = i - j;
+        console.log(sum,'sum');
+        console.log(this,'this');
+        console.log(this.age,'age');
+      }
+      var obj2 = {
+        age: 18,
+        day: '星期四'
+      }
+      fn3(79,8);
+      fn3.bind(obj2,79,8)();
+    </script>
+  </body>
+</html>