练习题2_this指向讲解.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <script>
  11. //1、写出下列输出结果
  12. // var x = 10;
  13. // function test() {
  14. // this.x = 20
  15. // console.log(this.x)
  16. // }
  17. // test()
  18. // console.log(x)
  19. //2、写出下列输出结果
  20. // var name = "window"
  21. // var obj = {
  22. // name: "obj",
  23. // func1: function () {
  24. // console.log(this.name);
  25. // (function () {
  26. // console.log(this.name)
  27. // })()
  28. // }
  29. // }
  30. // obj.func1()
  31. //3、写出下列结果
  32. // var name = "the window";
  33. // var object = {
  34. // name: "My Object",
  35. // getName: function () {
  36. // return this.name;
  37. // }
  38. // }
  39. // console.log(object.getName());
  40. // console.log((object.getName)());
  41. // console.log((object.getName = object.getName)());
  42. // var a = 10;
  43. // if(a=9){
  44. // console.log(a)
  45. // }
  46. // var age = 20;
  47. // var obj = {
  48. // age:10,
  49. // showAge:function(){
  50. // console.log(this.age)
  51. // }
  52. // }
  53. // console.log(obj.showAge);
  54. // var fn = obj.showAge;
  55. // // function fn2(){
  56. // // console.log(this.age)
  57. // // }
  58. // fn();
  59. //4、下列代码中当div的点击事件触发时输出的结果是?
  60. // document.getElementById("div").onclick = function () {
  61. // console.log(this)
  62. // };
  63. //5、请写出下列代码运行结果
  64. // var name = "window"
  65. // var obj = {
  66. // name: "obj"
  67. // }
  68. // window.setInterval(function () {
  69. // console.log(this.name)
  70. // }, 300)
  71. // window.setInterval(function () {
  72. // console.log(this.name)
  73. // }.bind(obj), 300)
  74. //6、请补全下列代码
  75. // function foo() {
  76. // //补全此处代码实现每隔一秒输出 hello world
  77. // // console.log("hello world");
  78. // return function(){
  79. // console.log("hello world");
  80. // }
  81. // }
  82. // window.setInterval(foo(), 1000);
  83. // 7、补全下列代码实现 1+2+3+4
  84. // function add(c, d) {
  85. // return this.a + this.b + c + d;
  86. // }
  87. // var obj = {
  88. // a: 1,
  89. // b: 2,
  90. // addFun:add
  91. // }
  92. // console.log(obj.addFun(3,4))
  93. /*
  94. 在此补全代码 以两种以上方法实现
  95. */
  96. //8、写出下列输出结果
  97. // function f() {
  98. // return this.a;
  99. // }
  100. // var g = f.bind({ a: "azerty" });
  101. // console.log(g());//azerty
  102. // // 函数正常情况下只能绑定一次bind 但如果绑定了多次 则以第一次绑定为准
  103. // var h = g.bind({ a: 'yoo' });
  104. // console.log(h());//azerty
  105. // var o = { a: 'loveCoding', f: f, g: g, h: h };
  106. // console.log(o.f(), o.g(), o.h());
  107. //loveCoding azerty azerty
  108. //9、补全下列代码
  109. // var o = { prop: 'loveCoding' };
  110. // function independent() {
  111. // return this.prop;
  112. // }
  113. // //在此补全代码
  114. // o.f = independent
  115. // console.log(o.f()); // loveCoding
  116. // //10、用call 或 apply 实现bind 方法
  117. // function foo() {
  118. // console.log(this.a)
  119. // }
  120. // var obj = {
  121. // a: "hello"
  122. // }
  123. // var foo2 = foo.bind2(obj);
  124. // foo2()
  125. </script>
  126. </body>
  127. </html>