123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- // var a = 1
- // var obj = {
- // a: 3,
- // fun: function () {
- // return () => { console.log(this.a) }
- // }
- // }
- // obj.fun()()
- // 3 3 3
- // var a = 1
- // var obj = {
- // a: 3,
- // fun: () => {
- // return function () {
- // console.log(this.a)
- // }
- // }
- // }
- // obj.fun()()
- //3 3 3 3 1
- /* var name = 'window'
- function Person(name) {
- this.name = name
- this.foo1 = function () {
- console.log(this.name);
- }
- this.foo2 = () => {
- console.log(this.name)
- }
- this.foo3 = function () {
- return function () {
- console.log(this.name);
- }
- }
- this.foo4 = function () {
- return () => {
- console.log(this.name);
- }
- }
- }
- var person1 = new Person('person1')
- var person2 = new Person('person2')
- person1.foo1() //p1
- person1.foo1.call(person2) //p2
- person1.foo2() // p1
- person1.foo2.call(person2)//p1
- person1.foo3()() //window
- person1.foo3.call(person2)() // window
- person1.foo3().call(person2) //p2
- person1.foo4()() // p1
- person1.foo4.call(person2)() // p2
- person1.foo4().call(person2) //p1
- //p1 p2 p1 p1 win win p2 p1 p2 p1 */
- /* function Foo() {
- console.log(this); //Foo{}
- this.x = 10;
- console.log(this); //Foo{x : 10}
- }
- Foo.prototype.getX = function () {
- console.log(this); //Foo{x:10}
- console.log(this.x); //10
- }
- var foo = new Foo();
- console.log(foo); // Foo{x : 10}
- foo.getX(); */
- var name = 'window'
- function Person(name) {
- this.name = name
- this.obj = {
- name: 'obj',
- foo1: function () {
- return function () {
- console.log(this.name)
- }
- },
- foo2: function () {
- return () => {
- console.log(this.name)
- }
- }
- }
- }
- var person1 = new Person('person1')
- var person2 = new Person('person2')
- person1.obj.foo1()() //win
- person1.obj.foo1.call(person2)() //win
- person1.obj.foo1().call(person2) //p2
- person1.obj.foo2()() //obj
- person1.obj.foo2.call(person2)() //p2
- person1.obj.foo2().call(person2)// obj
- // obj obj p2 p1 p1 p2
- // win win p2 p1 p2 p1
- //win win p2 p1 p1 p2
- // win win p2 obj p2 obj
- </script>
- </body>
- </html>
|