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 构造函数 / {}