Различие между jQuery.extend и jQuery.fn.extend?

Я пытаюсь понять синтаксис плагина jQuery, потому что я хочу объединить два плагина в один. Проблесковый огонь, который также должен смочь остановить de интервал или работать неоднократно.

Так или иначе, этот синтаксис то же как

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",

(это от плагина таймера),

82
задан Alex.K. 14 October 2018 в 13:22
поделиться

1 ответ

Будучи ленивым, я не проверяю это, но не должна эта работа

private int FindClosest(IEnumerable<int> numbers, int x)
{
    return
        numbers.Aggregate((r,n) => Math.Abs(r-x) > Math.Abs(n-x) ? n
                                 : Math.Abs(r-x) < Math.Abs(n-x) ? r
                                 : r < x ? n : r);
}
-121--3853861-
def func(*args): 
    pass

Когда вы определяете функцию этого пути, * args будет массив аргументов, переданных функции. Это позволяет вашей функции работать, не зная заранее, сколько аргументов будет передано ей.

Вы делаете это и с аргументами ключевых слов, используя * * kwargs :

def func2(**kwargs): 
    pass

См.: Произвольные списки аргументов


В вашем случае вы определили класс, который действует как словарь. Метод dict.pop определяется как pop (клавиша [, по умолчанию]) .

Метод не использует параметр default . Однако определение метода с помощью * args и передача * args в dict.pop () позволяет вызывающему абоненту использовать параметр default .

Другими словами, можно использовать метод pop класса, например dict.pop :

my_a = a()
value1 = my_a.pop('key1')       # throw an exception if key1 isn't in the dict
value2 = my_a.pop('key2', None) # return None if key2 isn't in the dict
-121--832277-

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.extend:

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

// creates 2 plugin functions (x and y)
87
ответ дан 24 November 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: