13_例题.html 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <script>
  11. // var a = 1
  12. // var obj = {
  13. // a: 3,
  14. // fun: function () {
  15. // return () => { console.log(this.a) }
  16. // }
  17. // }
  18. // obj.fun()()
  19. // 3 3 3
  20. // var a = 1
  21. // var obj = {
  22. // a: 3,
  23. // fun: () => {
  24. // return function () {
  25. // console.log(this.a)
  26. // }
  27. // }
  28. // }
  29. // obj.fun()()
  30. //3 3 3 3 1
  31. /* var name = 'window'
  32. function Person(name) {
  33. this.name = name
  34. this.foo1 = function () {
  35. console.log(this.name);
  36. }
  37. this.foo2 = () => {
  38. console.log(this.name)
  39. }
  40. this.foo3 = function () {
  41. return function () {
  42. console.log(this.name);
  43. }
  44. }
  45. this.foo4 = function () {
  46. return () => {
  47. console.log(this.name);
  48. }
  49. }
  50. }
  51. var person1 = new Person('person1')
  52. var person2 = new Person('person2')
  53. person1.foo1() //p1
  54. person1.foo1.call(person2) //p2
  55. person1.foo2() // p1
  56. person1.foo2.call(person2)//p1
  57. person1.foo3()() //window
  58. person1.foo3.call(person2)() // window
  59. person1.foo3().call(person2) //p2
  60. person1.foo4()() // p1
  61. person1.foo4.call(person2)() // p2
  62. person1.foo4().call(person2) //p1
  63. //p1 p2 p1 p1 win win p2 p1 p2 p1 */
  64. /* function Foo() {
  65. console.log(this); //Foo{}
  66. this.x = 10;
  67. console.log(this); //Foo{x : 10}
  68. }
  69. Foo.prototype.getX = function () {
  70. console.log(this); //Foo{x:10}
  71. console.log(this.x); //10
  72. }
  73. var foo = new Foo();
  74. console.log(foo); // Foo{x : 10}
  75. foo.getX(); */
  76. var name = 'window'
  77. function Person(name) {
  78. this.name = name
  79. this.obj = {
  80. name: 'obj',
  81. foo1: function () {
  82. return function () {
  83. console.log(this.name)
  84. }
  85. },
  86. foo2: function () {
  87. return () => {
  88. console.log(this.name)
  89. }
  90. }
  91. }
  92. }
  93. var person1 = new Person('person1')
  94. var person2 = new Person('person2')
  95. person1.obj.foo1()() //win
  96. person1.obj.foo1.call(person2)() //win
  97. person1.obj.foo1().call(person2) //p2
  98. person1.obj.foo2()() //obj
  99. person1.obj.foo2.call(person2)() //p2
  100. person1.obj.foo2().call(person2)// obj
  101. // obj obj p2 p1 p1 p2
  102. // win win p2 p1 p2 p1
  103. //win win p2 p1 p1 p2
  104. // win win p2 obj p2 obj
  105. </script>
  106. </body>
  107. </html>