jquery改变this指向的方法:

利用赋值var that=this; 来改变嵌套函数的 'this' 指向

利用es6箭头函数 改变this指向

    <script>
      function show() {
       alert(this)
      }
    //   show() //-> window
      //   show.call(document) // ->document  | 原生的方法
     $.proxy(show, document)() // ->document  | jQuery方法
  </script>

tips: 对于一个传参的函数如上例中的 show(c1,c2),使用.proxy()也有几个场景,按需求进行传参,如:

1. .proxy( show, document, c1, c2 ) // –> 加()后,才进行调用

2. .proxy( show, document )( c1, c2 ) // –> 这就直接调用了

    <script>
     // 利用赋值 var that = this; 来改变嵌套函数的'this'指向
       $('div').on('click', function() {
        var that = this
        setTimeout(function() {
           console.log(that) // -> div
       })
     })
   </script>
    <script>
     // 利用es6 箭头函数 改变 this指向
      $('div').on('click', function() {
         setTimeout(() => {
         console.log(this) // -> div
        })
     })
    </script>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。