123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <!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 world</div>
- <script>
- var oBox = document.getElementById("box");
- // oBox.onclick = function(){
- // console.log(this.innerText);
- // }
- // oBox.onclick = function(){
- // console.log(this);
- // (function(){
- // console.log(this)
- // })()
- // }
- // 箭头函数内没有this概念 但是里面可以使用this this指向的是外层的this
- // oBox.onclick = function(){
- // console.log(this);
- // (()=>{
- // console.log(this)
- // })()
- // }
- // var obj = {
- // a:10,
- // foo:function(){
- // console.log(this.a);
- // }
- // }
- // var a = 20;
- // var obj = {
- // a:10,
- // foo:function(){
- // console.log(this.a);
- // (function(){
- // console.log(this.a)
- // })()
- // }
- // }
- // obj.foo();
- // var a = 10;
- // function foo2(){
- // var a = 1
- // console.log(this.a);
- // }
- // window.foo2();
- // this 指向 : 指向调用当前函数的对象 要么指向window
- // 对象当中方法默认指向当前对象 如果方法内有其他函数 ,其他函数内部的this指向window
- // 普通函数this指向window
- // let a = 10;
- // function foo(){
- // b = 20;
- // console.log(this.b)
- // }
- // foo()
- // var a = 10;
- // function foo(){
- // console.log(this.a)
- // }
- // var obj = {
- // a:"hello",
- // foo:function(){
- // console.log(this.a);
- // }
- // }
- // obj.foo = foo;
- // obj.foo();
- function foo(a,b){
- console.log(this.a+a+b)
- }
- var obj = {
- a:"hello",
- }
- // call 修改函数的this指向 call里面第一个参数是要新的this指向的对象
- // 如果被改变的函数内部需要参数 则call方法从第二个参数起传递给当前函数
- // foo.call(obj,"world","你好");
- // aplly 跟call 基本相同,但是aplly只接受两个参数第一个是要指向的对象 第二个参数是数组 数组内部是要传递给函数的参数
- // foo.apply(obj,["world","你好"])
- // bind 它是将函数的this指向修改后返回一个函数,并不是立即执行。参数部分跟call方法一样
- var foo2 = foo.bind(obj,"hello","你好")
- foo2();
- </script>
- </body>
- </html>
|