12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <!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>
- <div id="box">hello</div>
- <script>
- // this 指向 谁调用的函数this就指向谁
- // this 指向问题 场景一
- // let obj = {
- // name: '张三',
- // age:18,
- // sex:"男",
- // talk(){
- // console.log(this.name);
- // }
- // }
- // obj.talk();
- // this 指向问题 场景二
- // let oBox = document.getElementById('box');
- // oBox.onclick = function(){
- // console.log(this);
- // }
- // function foo(){
- // console.log(this);
- // }
- // foo();
- // var a = 10;
- // console.log(this.a);
- // console.log(window.a);
- // let obj = {
- // name: '张三',
- // talk(){
- // console.log(this.name);
- // function foo(){
- // console.log(this)
- // }
- // foo();
- // }
- // }
- // obj.talk();
- // window.setTimeout(function(){
- // console.log(this);
- // },1000)
- var age = 19;
- var obj = {
- name: '张三',
- age:18
- }
- function foo(a){
- console.log(this.age,a);
- }
- // foo("hello");
- // foo.call(obj,"hello");
- // foo.apply(obj,["hello"]);
- // var foo2 = foo.bind(obj,"hello");
- // foo2();
- // call 可以改变this指向 参数有多个 第一个是this指向新对象 后面的参数是传入foo的参数
- // foo.call(obj,"hello");
- // apply 可以改变this指向 参数只有两个 第一个是this指向新对象 第二个是数组 里面是传入foo的参数
- // foo.apply(obj,["hello"])
- // bind 可以改变this指向 参数有多个 第一个是this指向新对象 后面的参数是传入foo的参数
- // let foo2 = foo.bind(obj,"hello");
- // foo2();
- </script>
- </body>
- </html>
|