欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery拓展方法extend()

程序员文章站 2023-08-12 08:44:17
1.当只写一个对象自变量的时候,jq中扩展插件的形式 $.extend({ //扩展工具方法 fun1 : function(){ ......

1.当只写一个对象自变量的时候,jq中扩展插件的形式

$.extend({     //扩展工具方法
    fun1 : function(){
        ...
    },
    fun2 : function(){
        ...
    }
});
//调用:  $.fun1()
/*那么为什么可以这么调用呢?
    $.extend() 它的this是$,因此this.fun1()==$.fun1(); 
**/ 


$.fn.extend({     //扩展jq实例方法
    fun1 : function(){
        ...
    },
    fun2 : function(){
        ...
    }
});
//调用:  $().fun1() 
/*那么为什么可以这么调用呢?
    $.fn.extend() 它的this是$.fn,因此this.fun1()==$().fun1();    
**/ 

2.当写多个对象自变量的时候 , 后面的对象都是扩展到第一个对象身上

var a = {};
$.extend( a , { name : 'hello' } , { age : 30 },... );

console.log( a );//a={name:'hello', age : 30,...}

3.还可以做 浅拷贝 和 深拷贝

var a = {};
var b = {  name : '张三' } ;
$.extend( a , b );
a.name = 'hi';
alert( b.name);//张三  这就是

var a = {};
var b = {  name : { age : 30 } };
a.name.age = 20;
alert( b.name.age );//20  此时就会受到影响

//而深拷贝只需要在前面加个true 如下:
$.extend( true , a , b ); //此时继承是不会受到影响的!



jq中 : 拷贝继承 : 构造函数的原型

js : 类式继承 / 原型继承

new 构造函数   /  {}