jquery.extend源码分析

(一)jQuery.extend的用法有以下几种:

1.扩展jQuery,插件开发时使用。有两种方式,一是扩展jQuery的静态方法,另一种是扩展jQuery对象的实例方法。

//扩展静态方法
$.extend({
    sayHello:function(){console.log("hello")}
});

//扩展实例方法
$.fn.extend({
    log:function(){
        console.log(this);
    }
});

2.扩展对象。参数为任意数量的对象,extend方法会让第一个对象继承后面对象的特性。

var chinese  = {country:"china", color:"yello"};  
var kids = {hobby:"play game"};  
var boy = {sex:"male"};  
// 让chinese继承kids 和boy的特性  
$.extend(chinese, kids, boy);
console.log(chinese);
//Object {country: "china", color: "yello", hobby: "play game", sex: "male"}
3.包含层次地扩展对象。当后面的参数的某个属性值为对象类型,需要将第一个参数设置为true,表示使用深拷贝。关于浅拷贝和深拷贝,后文会说。

var kids = {life:{morning:"watch_tv"}};  
var boy = {life:{afternoon:"play_video_game"}};  
// 让chinese继承kids 和boy的特性  
$.extend(true, kids, boy);
console.log(kids);
// Object{life:{morning:"watch_tv", afternoon:"play_video_game"}}
这个例子中如果不适用true参数,kids对象中的life属性会被覆盖。
(二)深拷贝和浅拷贝

深拷贝和浅拷贝是javascript实现继承的一种方式,他的思路是将a对象的所有属性拷贝给b对象,这样b对象就继承了a对象的所有属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值