fengchuanyu пре 9 месеци
родитељ
комит
ad4c6de130
2 измењених фајлова са 120 додато и 6 уклоњено
  1. 6 6
      5_ES6/15_this.html
  2. 114 0
      5_ES6/练习题2_this指向.html

+ 6 - 6
5_ES6/15_this.html

@@ -20,12 +20,12 @@
         //     })()
         // }
         // 箭头函数内没有this概念 但是里面可以使用this this指向的是外层的this
-        oBox.onclick = function(){
-            console.log(this);
-            (()=>{
-                console.log(this)
-            })()
-        }
+        // oBox.onclick = function(){
+        //     console.log(this);
+        //     (()=>{
+        //         console.log(this)
+        //     })()
+        // }
 
         // var obj = {
         //     a:10,

+ 114 - 0
5_ES6/练习题2_this指向.html

@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="X-UA-Compatible" content="ie=edge">
+  <title>Document</title>
+</head>
+<body>
+  <script>
+    //1、写出下列输出结果
+    var x = 10;
+    function test(){
+     this.x = 20
+    console.log(this.x)
+    }
+    test()  
+
+
+    //2、写出下列输出结果
+    var name= "window"
+    var obj = {
+      name:"obj",
+      func1 : function() {
+        console.log(this.name);
+        (function(){
+          console.log(this.name)
+        })()
+      }
+    }
+    obj.func1()
+
+
+    //3、写出下列结果
+    var name="the window";
+
+    var object={
+        name:"My Object", 
+        getName:function(){ 
+          return this.name;
+      } 
+    }
+
+    console.log(object.getName());   
+    console.log((object.getName)());   
+    console.log((object.getName=object.getName)());
+
+    //4、下列代码中当div的点击事件触发时输出的结果是?
+    document.getElementById("div").onclick = function(){
+      console.log(this)
+    };
+
+
+    //5、请写出下列代码运行结果
+    var name = "window"
+    var obj = {
+      name:"obj"
+    }
+    window.setInterval(function(){
+      console.log(this.name)
+    }, 300)
+    window.setInterval(function(){
+      console.log(this.name)
+    }.call(obj),300)
+
+    //6、请补全下列代码
+    function foo(){
+      //补全此处代码实现每隔一秒输出 hello world
+    }
+    window.setInterval(foo(),1000);
+
+
+    // 7、补全下列代码实现 1+2+3+4
+    function add(c, d) {
+      return this.a + this.b + c + d;
+    }
+
+    /*
+      在此补全代码 以两种以上方法实现
+    */
+    
+
+
+    //8、写出下列输出结果
+    function f(){
+      return this.a;
+    }
+
+    var g = f.bind({a:"azerty"});
+    console.log(g()); 
+
+    var h = g.bind({a:'yoo'}); 
+    console.log(h());
+
+    var o = {a:'loveCoding', f:f, g:g, h:h};
+    console.log(o.f(), o.g(), o.h());
+
+
+    //9、补全下列代码
+    var o = {prop: 'loveCoding'};
+
+    function independent() {
+      return this.prop;
+    }
+    //在此补全代码
+    console.log(o.f()); //  loveCoding
+
+    //10、用call 或 apply 实现bind 方法
+    
+    var foo2 = foo.bind2(obj);
+    foo2()
+  </script>
+</body>
+</html>