您的位置:首页 > Web前端 > JQuery

jquery.extend源码分析

2014-04-05 11:50 447 查看

(一)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对象的所有属性。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: