jquery에서 this 지점을 변경하는 방법: 1. 할당 [var that=this;]을 사용하여 중첩 함수의 [this] 지점을 변경합니다. 2. es6 화살표 함수를 사용하여 this 지점을 변경합니다. 코드는 [$('div') .on('click', function()]입니다.
이 튜토리얼의 운영 환경: windows10 시스템, jquery2.2.4, 이 기사는 모든 브랜드에 적용됩니다.
jquery에서 이 지점을 변경하는 방법:
var that=this;
할당을 사용하여 중첩 함수의 '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 )
es6<을 사용하세요. /code> this<blockquote><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> <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></pre><div class="contentsignin">로그인 후 복사</div></div><p>의 포인터를 변경하는 화살표 함수 팁: 매개변수 전달의 경우 함수는 위 예의 show (c1, c2)와 같습니다. <code>.proxy()</를 사용하는 여러 가지 시나리오가 있습니다. code>. 요구사항에 따라 매개변수가 전달됩니다. 예: document, c1, c2 )
// --> 호출하기 전에 ()를 추가하세요.<script> // 利用es6 箭头函数 改变 this指向 $('div').on('click', function() { setTimeout(() => { console.log(this) // -> div }) }) </script>
위 내용은 Jquery에서 이 포인터를 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!