什么是$.widget
    使用与所有 jQuery UI 小部件相同的抽象化来创建有状态的 jQuery 插件。
    我的理解:就是创建jQuery插件的一种方式

    https://www.runoob.com/jqueryui/example-widget.html

    小知识
    jQuery参数:jQuery(selector, [content])
    content:表示范围,上述其实就等于:jQuery(content).find(selector)
    jQuery.extend
    可以对jQuery添加一个扩展方法,比如:自定义一个打印方法

    1. $.extends({
    2. log: function(msg) {
    3. let date = new Date().getTime()
    4. console.log(date + ':' + msg)
    5. }
    6. })
    7. // 使用
    8. $.log('hahahah') // 1646644649675:hahahah

    jQuery.fn
    是一个jQuery插件方法,可以对某个dom元素进行扩展,比如:给当前节点的字体颜色修改为blue

    1. $.fn.plugin = funtion(val) {
    2. this.css('color', 'blue');
    3. }
    4. // 使用
    5. $(a).plugin()

    使用
    可以创建一个jQuery插件

    1. $.widget("ui.xxx", {
    2. _create: function(){}
    3. });

    如上,ui表示命名空间,xxx表示插件的名称,使用的时候可以直接如下:

    1. $('.dom').xxx()

    改方法会自动调用xxx插件内部的_create方法进行初始化,应该就属于构造函数
    传入的参数可以通过this.options来获取
    jQuery.widget( name [, base ], prototype )

    参数 类型 类型
    name String 要创建的小部件名称,包括命名空间。
    base Function() 要继承的基础小部件。必须是一个可以使用 new 关键词实例化的构造函数。默认为 jQuery.Widget。
    prototype PlainObject 要作为小部件原型使用的对象。

    _create
    相当于插件的构造函数,不接受参数,默认已经封装好了this.element和this.options
    this.element
    表示当前的插件自身dom实体