programing

왜 $$를 $self와 $body에 넣습니까?그리고 자신은 $self와 같습니다.

powerit 2023. 9. 25. 23:12
반응형

왜 $$를 $self와 $body에 넣습니까?그리고 자신은 $self와 같습니다.

저는 다른 사람들의 코드를 이해하려고 노력하면서 jQuery를 배우고 있습니다.이런 일을 당했습니다.

jQuery.fn.myFunc = function(options, callback) {

//stuff

  jQuery(this)[settings.event](function(e) {
    var self = this,
    $self = jQuery( this ),
    $body = jQuery( "body" );
     //etc.
  }

//more stuff

}

제가 알기로는$jQuery 개체를 참조합니다.그래서 왜 집어넣습니까?$와 함께$self그리고.$body? 그리고.self와 같은$self?

$self는 이 경우 jQuery의 별칭인 $와 거의 관련이 없습니다.어떤 사람들은 정규 변수와 jQuery 객체를 구별하기 위해 변수와 함께 달러 기호를 넣는 것을 선호합니다.

예:

var self = 'some string';
var $self = 'another string';

이들은 두 개의 다른 변수로 선언됩니다.이는 사적 변수 앞에 밑줄을 긋는 것과 같습니다.

다소 인기 있는 패턴은 다음과 같습니다.

var foo = 'some string';
var $foo = $('.foo');

그러면 $foo는 나중에 코드에서 캐시된 jQuery 개체라는 것을 알 수 있습니다.

이건 순수 자바스크립트입니다.

특별한 것은 없습니다.$. 이는 단지 변수 이름에 사용될 수 있는 문자일 뿐입니다.

var $ = 1;
var $$ = 2;
alert($ + $$);

jQuery는 자신의 핵심 기능을 다음과 같은 변수에 할당합니다.$. 당신이 가지고 있는 코드가 할당합니다.this로 불리는 지역 변수에self그리고 jQuery와 통화한 결과.this라는 글로벌 변수에 대한 논쟁으로서$self.

추하고 더럽고 혼란스럽긴 하지만$,self그리고.$self이름이 비슷한 모든 변수들입니다.

아니요, 확실히 그렇지 않습니다.단지 다른 변수 이름일 뿐입니다.$()사실 jQuery 코어 함수를 말씀하시는 거죠. 그.$self단지 변수일 뿐입니다.이름을 다음으로 바꿀 수도 있습니다.foo당신이 원한다면, 이것은 상황을 바꾸지 않습니다.$(그리고_)는 자바스크립트 식별자의 법적 문자입니다.

이 작업을 수행하는 이유는 종종 일부 코드 규칙에 불과하거나 반대 키워드와의 충돌을 피하기 위한 것입니다.나는 그것을 자주 사용합니다.$this다음과 같이

var $this = $(this);

self와 $self는 같지 않습니다.전자는 "이것"이 가리키는 객체이고 후자는 "범위"가 "이것"이 가리키는 객체인 jQuery 객체입니다.마찬가지로 $body는 body DOM 요소가 아니라 범위가 body 요소인 jQuery 객체입니다.

var name에서 접두사로 사용되는 달러 기호는 헝가리어 표기법의 개념에서 나온 사용입니다.

언급URL : https://stackoverflow.com/questions/1916584/why-put-with-self-and-body-and-is-self-the-same-as-self

반응형