fengchuanyu 9 月之前
父节点
当前提交
8c12b26b93
共有 5 个文件被更改,包括 239 次插入10 次删除
  1. 45 8
      5_ES6/13_函数扩展.html
  2. 40 0
      5_ES6/15_this.html
  3. 120 0
      5_ES6/16_对象扩展.html
  4. 25 0
      5_ES6/17_原型.html
  5. 9 2
      5_ES6/练习题2_this指向.html

+ 45 - 8
5_ES6/13_函数扩展.html

@@ -30,17 +30,54 @@
         //     }
         //     }
         // }
         // }
         // 箭头函数内没有this
         // 箭头函数内没有this
-        let obj = {
-            a : "hello",
-            foo:()=>{
-                console.log(this.a)
-            }
-        }
+        // let obj = {
+        //     a : "hello",
+        //     foo:()=>{
+        //         console.log(this.a)
+        //     }
+        // }
 
 
-        obj.foo()
+        // obj.foo()
 
 
+        // function foo(a){
+        //     // if(a){
+        //     //     console.log(a)
+        //     // }else{
+        //     //     console.log("参数无效")
+        //     // }
+        //     a = a||"参数无效";
+        //     console.log(a);
+        // }
+        // foo();
+
+        // var arr = new Array();
 
 
-        
+        // es6为参数提供默认值
+        // function foo(a="hello"){
+        //     console.log(a);
+        // }
+        // foo();
+
+        // function foo(a=1,b=2,c=3){
+        //     console.log(a,b,c)
+        // }
+        // foo("a","","b");
+
+        // function foo(){
+        //     console.log("hell");
+        // }
+        // console.log(foo.name);
+
+        // var foo = function foo2(){
+        //     console.log("1");
+        // }
+        // // foo2();
+        // console.log(foo.name)
+
+        // function foo(a,b,c){
+        //     console.log(a,b,c)
+        // }
+        // console.log(foo.length);
     </script>
     </script>
 </body>
 </body>
 </html>
 </html>

+ 40 - 0
5_ES6/15_this.html

@@ -57,7 +57,47 @@
         // 对象当中方法默认指向当前对象 如果方法内有其他函数 ,其他函数内部的this指向window
         // 对象当中方法默认指向当前对象 如果方法内有其他函数 ,其他函数内部的this指向window
         // 普通函数this指向window
         // 普通函数this指向window
 
 
+        // let a = 10;
+        // function foo(){
+        //     b = 20;
+        //     console.log(this.b)
+        // }
+
+
+        // foo()
+
+        // var a = 10;
+        // function foo(){
+        //     console.log(this.a)
+        // }
+        // var obj = {
+        //     a:"hello",
+        //     foo:function(){
+        //         console.log(this.a);
+        //     }
+        // }
+
+
+        // obj.foo = foo;
+        // obj.foo();
+
+
+        function foo(a,b){
+            console.log(this.a+a+b)
+        }
+        var obj = {
+            a:"hello",
+        }
+        // call 修改函数的this指向 call里面第一个参数是要新的this指向的对象
+        // 如果被改变的函数内部需要参数 则call方法从第二个参数起传递给当前函数
+        // foo.call(obj,"world","你好");
+
+        // aplly 跟call 基本相同,但是aplly只接受两个参数第一个是要指向的对象 第二个参数是数组 数组内部是要传递给函数的参数
+        // foo.apply(obj,["world","你好"])
 
 
+        // bind 它是将函数的this指向修改后返回一个函数,并不是立即执行。参数部分跟call方法一样
+        var foo2 = foo.bind(obj,"hello","你好")
+        foo2();
     </script>
     </script>
 </body>
 </body>
 </html>
 </html>

+ 120 - 0
5_ES6/16_对象扩展.html

@@ -0,0 +1,120 @@
+<!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>
+        // let age = 18;
+        // let obj = {
+        //     name:"小明",
+        //     age:age,
+        //     school:"黑大",
+        //     sayName:function(){
+        //         console.log(this.name);
+        //     }
+        // }
+
+        // let obj = {
+        //     name:"小明",
+        //     name1:"小红",
+        //     name2:"小张",
+        //     name3:"小李",
+        //     age,
+        //     school:"黑大",
+        //     sayName(){
+        //         console.log(this.name);
+        //     }
+        // }
+        // console.log(obj)
+        // obj.sayName();
+
+        // console.log(obj.name)
+
+        // var a = "name";
+        // console.log(obj[a]);
+        // for(var i=1;i<4;i++){
+        //     console.log(obj['name'+i]);
+        // }
+
+        // let obj1 = {
+        //     a:1
+        // }
+        // // let obj2 = {
+        // //     a:1
+        // // }
+        // let obj2 = obj1
+
+        // console.log(obj1 == obj2)
+        // console.log(Object.is(obj1,obj2));
+
+        // let a = 10;
+        // let b = 10;
+        // let str1 = "10"
+        // console.log(a === str1);
+        // console.log(Object.is(a,b));
+        // console.log(Object.is(a,str1));
+
+        // let obj1 = {
+        //     a:1
+        // }
+        // let obj2 = {
+        //     b:2
+        // }
+        // // let obj3 = {
+        // //     ...obj1,...obj2
+        // // }
+        // let obj3 = {
+        //     c:3
+        // }
+        // Object.assign(obj1,obj2,obj3)
+        // console.log(obj1);
+
+
+        // let obj = {
+        //     name: "小明",
+        //     age: 18,
+        //     school: "黑大",
+        //     sayName: function () {
+        //         console.log(this.name);
+        //     }
+        // }
+        // console.log("age" in obj);
+        // console.log("sayName" in obj);
+
+
+        let obj = {
+            name: "小明",
+            age: 18,
+            school: "黑大",
+            sayName: function () {
+                console.log(this.name);
+            }
+        }
+        // for(let keyName in obj){
+        //     console.log(keyName);
+        // }
+        let keyName = Object.keys(obj);
+        let objValues = Object.values(obj);
+        let keyValue = Object.entries(obj);
+        console.log(keyName);
+        console.log(objValues);
+        console.log(keyValue);
+
+        let arr = [['a',1],['b',2],['c',3]];
+        console.log(Object.fromEntries(arr));
+
+        // var arr = [1,2,3,4];
+        // console.log(arr.join(""));
+        // var str = "hello";
+        // console.log(str.split(""));
+
+
+    </script>
+</body>
+
+</html>

+ 25 - 0
5_ES6/17_原型.html

@@ -0,0 +1,25 @@
+<!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 foo(){
+            console.log("hello");
+        }
+
+        Function.prototype.lovecoding = function(){
+            console.log("lovecoding");
+        }
+
+        foo.lovecoding();
+        // prototype 原型
+        // console.log(Array.prototype)
+
+
+    </script>
+</body>
+</html>

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

@@ -106,9 +106,16 @@
     console.log(o.f()); //  loveCoding
     console.log(o.f()); //  loveCoding
 
 
     //10、用call 或 apply 实现bind 方法
     //10、用call 或 apply 实现bind 方法
-    
+    function foo(){
+      console.log(this.a)
+    } 
+    var obj = {
+      a:"hello"
+    } 
+
+
     var foo2 = foo.bind2(obj);
     var foo2 = foo.bind2(obj);
-    foo2()
+    foo2()//hello
   </script>
   </script>
 </body>
 </body>
 </html>
 </html>