itsource

jQuery.extend와 jQuery.fn.extend의 차이점은?

mycopycode 2023. 10. 4. 21:51
반응형

jQuery.extend와 jQuery.fn.extend의 차이점은?

jquery plugin 구문을 이해하려고 합니다. 왜냐하면 두 개의 플러그인을 하나로 병합하고 싶기 때문입니다.인터벌 해제를 중지하거나 여러 번 실행할 수 있어야 하는 깜빡이입니다.

어쨌든, 이 구문은 다음과 같습니다.

jQuery.fn.extend({
    everyTime: function(interval, label, fn, times) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },

이것.

$.fn.blink = function(options)
    {

=가 없는 첫 번째 방법이 여러 개의 메서드를 한 번에 설정하는 방법처럼 보이기 때문입니다.이게 맞나또한 여기 있는 동안 jquery 객체에 요소와 약간의 논리를 추가해야 하는 이유는 무엇입니까?

jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",

(이것은 타이머 플러그인에서 가져온 것입니다.)

jQuery.extend는 추가 기능이 있는 모든 개체를 확장하는 데 사용되지만 jQuery.fn.extend는 jQuery.fn 개체를 확장하는 데 사용되며, 실제로는 (각 기능을 별도로 할당하는 대신) 한 번에 여러 플러그인 기능을 추가합니다.

jQuery.extend:

var obj = { x: function() {} }

jQuery.extend(obj, { y: function() {} });

// now obj is an object with functions x and y

jQuery.fn.extension:

jQuery.fn.extend( {
        x: function() {},
        y: function() {}
});

// creates 2 plugin functions (x and y)
jQuery.extend({
    abc: function(){
        alert('abc');
    }
});

usage: . (선택기가 필요 없음)$.ajax().)

jQuery.fn.extend({
    xyz: function(){
        alert('xyz');
    }
});

usage: . (선택 또는 필요한 경우)$('#button').click().)

주로 구현하는 데 사용됩니다.$.fn.each().

jQuery.extend와 jQuery.fn.extend의 차이점은?

사실, 그들의 기준 이외에는 아무것도 없습니다.jQuery 소스에서 다음을 읽을 수 있습니다.

jQuery.extend = jQuery.fn.extend = function() { … };

그렇다면, 어떻게 사람을 구조할까요?설명서에는 다음과 같은 내용이 있습니다.

두 개 이상의 개체의 내용을 첫 번째 개체로 병합합니다.

속성을 복사하고 플래그를 붙여 중첩된 개체를 반복하는 for-in-loop일 뿐입니다.그리고 또 다른 기능:

하나의 인수만 제공되는 경우$.extend(), 이는 대상 인수가 생략되었음을 의미합니다.

 // then the following will happen:
 target = this;

그래서 만약 그 기능이 호출되면jQuery그 자체(명시 대상 없이)는 jQuery 네임스페이스를 확장합니다.그리고 그 기능이 호출되면jQuery.fn(명시 대상 없이), 모든 (플러그인) 메서드가 있는 곳에 jQuery 프로토타입 개체를 확장합니다.

블로그 게시물에 대한 설명이 좋습니다.

$.fn.extend({
myMethod: function(){...}
});
//jQuery("div").myMethod();

$.extend({
myMethod2: function(){...}
});
//jQuery.myMethod2();

견적:

일반적으로 함수의 경우 jQuery 개체를 확장하고 메서드의 경우 jQuery.fn 개체를 확장해야 합니다.함수는 메서드와 반대로 DOM에서 직접 액세스하지 않습니다.

$.fn.something= function{};

는 jQuery.prototype을 가리키며 "this"를 통해 돔 요소에 액세스할 수 있도록 합니다.이제 사용할 수 있습니다.$(selector).something();그래서 이것은 플러그인 기능으로 작동합니다.$(selector).css();

$.something = function{};

jQuery 객체 자체에 속성 또는 함수를 추가하고 "이것"을 돔 액세스에 사용할 수 없습니다. 이제 다음과 같이 사용할 수 있습니다.$.something(); 이것은 다음과 같은 유틸리티 기능으로 작동합니다.$.trim()

그렇지만

$.fn.extend({function1(), function2()}) and  $.extend({function1(), function2()}) 

두 개 이상의 함수를 동시에 추가할 수 있습니다.또한 두 개 이상의 객체를 제공할 경우 두 개의 객체 리터럴을 병합하는 데 사용할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/1991126/difference-between-jquery-extend-and-jquery-fn-extend

반응형