| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- <!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.prototype上添加一个bind2方法
 
-         // Function.prototype.bind2 = function (obj,...arg) {
 
-         //     // 返回一个函数
 
-         //     let that = this;
 
-         //     return function () {
 
-         //         // that.call(obj);
 
-         //         // that.apply(obj,arg);
 
-         //         that.call(obj,...arg);
 
-         //     }
 
-         // }
 
-         Function.prototype.bind2 = function (obj) {
 
-             // 返回一个函数
 
-             var that = this;
 
-             // console.log(arguments.slice(1));
 
-             // console.log(arguments);
 
-             // console.log(Array.from(arguments));
 
-             // var arg = Array.from(arguments);
 
-             var arg = Array.prototype.slice.call(arguments,1);
 
-             return function () {
 
-                 // that.call(obj);
 
-                 // that.apply(obj,arg);
 
-                 that.apply(obj,arg);
 
-             }
 
-         }
 
-         function foo(x,y) {
 
-             console.log(this.a,x,y)//hello
 
-         }
 
-         var obj = {
 
-             a: "hello"
 
-         }
 
-         var foo2 = foo.bind2(obj,1,2);
 
-         foo2()
 
-     </script>
 
- </body>
 
- </html>
 
 
  |