jQuery extend 与 fn.extend

1.1.jQuery.extend()

扩展 jQuery 类本身,为jQuery类添加类方法(静态方法)

<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../../Library/jquery-3.3.1.min.js"></script>
        <script>
            jQuery.extend({
                add: function(a, b) {
                    alert(a + b)
                }
            })
            jQuery.add(10 , 20)
        </script>
    </head>
    <body>

    </body>
</html>

1.2.jQuery.extend(object, object1, [objectN])

用一个或多个其他对象来扩展一个对象,返回被扩展的对象

<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../../Library/jquery-3.3.1.min.js"></script>
        <script>
            var obj = { name: 'Alice', age: 25, career: 'teacher'}
            var object = { name: 'Bruce', career: 'doctor' }
            var newObj = jQuery.extend(obj, object)
            console.log( newObj );
        </script>
    </head>
    <body>

    </body>
</html>
//newObj = { name: 'Bruce', age: 25, career: "doctor" }

2.jQuery.fn.extend()

<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../../Library/jquery-3.3.1.min.js"></script>
        <script>
            jQuery.fn.extend({ 
                test : function(){ 
                    return this.each(function(){ 
                        alert(this.nodeName) 
                    })
                } 
            })
            $(function(){
                $("p").click(function(){ 
                    $(this).test()
                })
            })
        </script>
    </head>
    <body>
        <p>点击</p>
    </body>
</html>
<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../../Library/jquery-3.3.1.min.js"></script>
        <script>
            jQuery.fn.extend({ 
                test : function(){ 
                    return this.each(function(){ 
                        alert($(this).text()) 
                    })
                } 
            })
            $(function(){
                $("p").click(function(){ 
                    $(this).test()
                })
            })
        </script>
    </head>
    <body>
        <p>点击</p>
    </body>
</html>

3.区别

jQuery.extend()是为jQuery类添加类方法(静态方法),需要通过jQuery类来调用(直接使用 $.xxx 调用);

jQuery.fn.extend()是为jQuery类添加成员函数(实例方法),所有jQuery实例都可以直接调用(需要使用 $().xxx 调用)。