$이것 대 jQuery의 $(이것)
는 에 SO 해서와 좀 봤습니다.$(this)
.$this
jQuery에서, 그들은 나에게 이해가 됩니다. (예를 들어 여기 토론 참조)
하지만 체인성이 어떻게 작동하는지 보여주는 jQuery 웹사이트 플러그인 튜토리얼의 아래 토막글은 어떨까요?
(function ($) {
$.fn.lockDimensions = function (type) {
return this.each(function () {
var $this = $(this);
if (!type || type == 'width') {
$this.width($this.width());
}
if (!type || type == 'height') {
$this.height($this.height());
}
});
};
})(jQuery);
인가란 입니까?$this
위를 대표합니까?내가 그걸 알아냈다고 생각할 때쯤...
$this
단지 평범한 변수일 뿐입니다.$
$this
다른 reserved 변수 이름과 동일하게 동작합니다.를 부르는 JellyBean
.
에를 쓰잖아요.var $this = $(this);
필요 이상으로 자주 새 jQuery 개체를 만들지 않도록 합니다.아래 코드의 경우에는 2/4이 아닌 하나의 개체만 생성합니다.이것은 체인성과는 전혀 관련이 없습니다.
당신은 그것을 부를 수도 있습니다.that
,$thi$
그 것은 하지 말 것것 :것오,다 :p)로 사용함$
자바스크립트에서 a-zare와 정확히 같은 단순한 문자일 뿐입니다.
this
현재 .vscript다.이 은 jQuery스럽습니다라는은을 스럽습니다.this
그들의 고리 구조 안에서 더 사용자 친화적입니다.
바깥쪽에.each()
,this
jQuery다에은 ..lockDimensions
에 의해 호출됩니다.
내부에.each()
현재 반복된 DOM 개체를 나타냅니다.
으로 의 $(this)
에서 jQuery합니다를 .$()
여러 번, 캐싱jQueryized this
여러 번 사용해야 한다면 효율성에 도움이 될 것입니다.
$
는 단순히 유효한 변수 이름 문자이며 일반적으로 프로그래머가 이미 jQuery 개체임을 대기열에 넣을 때 변수 이름의 첫 번째 문자로 사용됩니다(관련 메서드/속성 사용 가능).
이 체인 하려면 를 .this
고,해,this
그 전화에서도 말입니다.
이 대목을 간과하셨을 수도 있습니다.
var $this = $(this);
여기서,$this
입니다 입니다.$(this)
. 와 하실 수 .$(this)
동일한 검색을 반복해서 수행하지 않는다는 이점이 있습니다.
$this
입니다를 이 붙여졌습니다.$(this)
의 .jQuery 합니다를 합니다.this
번할 수 .
$this
다의 로컬 입니다.this
로 Query로 감쌌습니다.
것.this
그것이 필요할 때마다 훨씬 더 효율적입니다.
$this = $(this)
는 jQuery 개체를 캐시하는 방법입니다.매번 jQuery 기능을 실행하는 것은 비용이 많이 들기 때문에 출력을 저장하면 jQuery 기능을 다시 호출하지 않고도 셀렉터를 반복해서 사용할 수 있습니다.
$this = $(this)
, 를 , 합니다라는 합니다.$this
.
그것은 단지 가변적인 이름입니다.
그것은 그냥 채워집니다.$this
변수$(this)
를 할 필요가 .$(this)
모든 호출에 요소를 포함합니다.다가 더 .
var $this = $(this);
간단해요. .$this = $(this)
은 단지 그것은 단지 내적인 기능의 범위에서 사용되는 축약어일 뿐입니다.달러 사인은 이 경우 문자일 뿐, jQuery를 전혀 지칭하지 않습니다.입니다로 이 나을 수도 ._this
아니면xthis
,$
변수에 포함된 내용을 상기시켜 줄 뿐입니다.
처럼 보일세( 합니다)을 합니다.$()
기능이 무료가 아닙니다). 따라서 성능상의 이유로 사용될 가능성이 높습니다.
에서 안에서.$.fn.lockDimensions
,this
jQuery입니다를 입니다.lockDimensions
요청했습니다.
.each
,this
이제 루프의 현재 반복에서 DOME 요소를 참조합니다.$(this)
DOME를 jQuery하고,var $this = $(this);
저장하는 것 뿐입니다.$(this)
$this
번가 없습니다(할 경우 jQuery Constructor 를()).$(this)
대신에).
$
sign과 jQuery됩니다를 됩니다.그래서 여기.$this
입니다의 를 얻을 수 뿐입니다.$(this)
은 jQuery를 반환합니다.this
.$
유효한 변수 이름의 일부일 뿐입니다.
$this
는 이름을 가진 변수입니다.$this
에 $(this)
무의미한 좀 무의미한 IMO.
전문적인 jQuery 기술이 없어도 여기에 뛰어들고 싶습니다.
수많은 코드 라인이나 다음과 유사한 개념을 볼 수 있습니다.
var $this = $(this);
그래서 저는 다음과 유사하게 다시 작성합니다.
var $jims_this = $(this);
시험해 보세요.또한 저는 제가 가질지도 모르는 혼란을 해소하기 위해 이렇게 합니다.
다음은 유사하게 잘 설명되지 않은 코드의 또 다른 예입니다.
<style>
a.a { font-weight: bold; }
</style>
그런 다음 addClass 호출을 스크립트에 추가합니다.
$("a").addClass("a");
이것은 효과가 있지만 혼란스럽습니다.다음과 같이 쓰였을 수도 있습니다.
<style>
a.my_bold_class { font-weight: bold; }
</style>
$("a").addClass("my_bold_class");
짐.
당신은 자바스크립트 범위와 폐쇄의 영역을 방황했습니다.
단답형의 경우:
this.bar()
foo의 범위에 따라 실행됩니다. (이것은 foo를 지칭합니다.)
var barf = this.bar;
barf();
글로벌 범위에서 실행됩니다.
this.bar 은 기본적으로 다음을 의미합니다.
이 (foo)의 범위에 따라 this.bar 에서 지적한 기능을 실행합니다.this.bar 을 barf에 복사하고 barf를 실행할 때.javascript는 barf가 가리키는 함수를 실행하는 것으로 이해되며, 이것이 없기 때문에 그냥 글로벌 스코프로 실행됩니다.
이를 수정하기 위해 변경할 수 있습니다.
barf();
다음과 같은 경우에:
barf.apply(this);
이것은 자바스크립트에 이것의 범위를 실행하기 전에 barf에 바인딩하라고 알려줍니다.
jquery 이벤트의 경우 익명 함수를 사용하거나 범위 지정을 지원하기 위해 프로토타입의 바인딩 함수를 확장해야 합니다.
언급URL : https://stackoverflow.com/questions/7389944/this-vs-this-in-jquery
'programing' 카테고리의 다른 글
후크를 통한 우커머스 변형 (0) | 2023.10.01 |
---|---|
CSS 속성 이름에서 별표는 무엇을 합니까? (0) | 2023.10.01 |
팬시트리 전체 다시 로드 (0) | 2023.10.01 |
Ajax가 빈 값을 전달하지만 ASP에서 컨트롤러가 null이 됩니다.NET MVC (0) | 2023.10.01 |
공개 동의어를 올바르게 만드는 방법 (0) | 2023.10.01 |