Home  >  Article  >  Web Front-end  >  How to change this pointer in jquery

How to change this pointer in jquery

coldplay.xixi
coldplay.xixiOriginal
2020-11-18 15:17:453138browse

How to change the point of this in jquery: 1. Use assignment [var that=this;] to change the point of [this] of the nested function; 2. Use the es6 arrow function to change the point of this, the code is [$( 'div').on('click', function()】.

How to change this pointer in jquery

The operating environment of this tutorial: windows10 system, jquery2.2.4, this article applies to all Brand of computer.

The method for jquery to change this pointed to:

Use assignment var that=this; to change the 'this of the nested function ' Point to

Use es6 arrow function to change this point to

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

tips: For a function that passes parameters such as show (c1, c2) in the above example, use .proxy()There are also several scenarios where parameters are passed according to requirements, such as:            

1. .proxy(show, document, c1, c2) // -- > After adding (), call

2. .proxy( show, document )( c1, c2 ) // --> This is the direct call

    <script>
     // 利用赋值 var that = this; 来改变嵌套函数的&#39;this&#39;指向
       $(&#39;div&#39;).on(&#39;click&#39;, function() {
        var that = this
        setTimeout(function() {
           console.log(that) // -> div
       })
     })
   </script>
rrree

Related free learning recommendations: JavaScript (video)

The above is the detailed content of How to change this pointer in jquery. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn