练习题5_手动实现bind.html 699 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 第一步向Function.prototype上添加一个bind2方法
  11. Function.prototype.bind2 = function (obj) {
  12. // 返回一个函数
  13. let that = this;
  14. return function () {
  15. that.call(obj);
  16. }
  17. }
  18. function foo(x,y) {
  19. console.log(this.a,x,y)//hello
  20. }
  21. var obj = {
  22. a: "hello"
  23. }
  24. var foo2 = foo.bind2(obj,1,2);
  25. foo2()
  26. </script>
  27. </body>
  28. </html>