对js中this的理解

1、说说你对 this 的理解

  1、this是Javascript语言的一个关键字,它代表函数运行时自动生成的一个内部对象,只能在函数内部使用。this指的是调用函数的那个对象。his的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象

2、call\apply\bind 的区别和联系?

  在JS中,这三者都是用来改变函数的this对象的指向的
    call()和apply()的区别:
      相同点:都是调用一个对象的一个方法,用另一个对象替换当前对象(功能相同)
      不同点:参数书写方式不同
        call()的第一个参数是this要指向的对象,后面传入的是参数列表,参数可以是任意类型,当第一个参数为null、undefined的时候,默认指向window;
        apply():第一个参数是this要指向的对象,第二个参数是数组
    call()和bind()的区别:
      相同点:都是用来改变this的指向
      不同点:call()改过this的指向后,会再执行函数,bind()改过this后,不执行函数,会返回一个绑定新this的函数

3、下面代码执行结果

 1  <script>
 2             var hellword = (function(){
 3                 console.log(hello one) ;
 4                 setTimeout(function(){
 5                     console.log(hello two) ;
 6                 },100) ;
 7                 setTimeout(function(){
 8                     console.log(hello three) ;
 9                 },0) ;
10                 console.log(hello four) ;
11             }()) ;
12     </script>

  执行结果:

      hello one
      hello four
      hello three
      hello two

4、下面代码的执行结果

1  <script>
2             var a = {
3                 id : 10 
4             }
5             b = a ;
6             b.id = 1 ;
7             b.name = test ;
8             console.log(a) ;
9     </script>

  执行结果:

  id:1

  name:test

 

对js中this的理解

上一篇:微信跳一跳


下一篇:微信公众号开发之配置信息错误(-106,-107错误)