extend 有2种常用的方法:
1 扩充 jQuery ,用法详见api。。
2 对象的扩充(我更想叫它合并): 后面的覆盖前面的, 并且返回被覆盖后的对象...
var objectA = {a : 'aaa' , b: 'bbb' } ; var objectB = {c : 'ccc' , b: 'b' } ;
var opt = jQuery.extend(objectA, objectB);
console.log(opt); // 结果 opt {a:'aaa', b:'b' , c:'ccc'};
没事,就写了个假的:
先写一个函数: var MyExt = function () {...}
1 扩充,一般是基于 MyExt['name'] = xxx, 所以,当传一个参数时:
if(arguments.length == 1) {
var obj = arguments[0]; // 让obj等于第一个参数
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name]; //加入扩展
}
}
2 覆盖, 就让他重复好了,,
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
所以,这个方法的雏形就有了(一个可以扩展MyExt,和合并对象的extend), 当然,是应该优化的!
MyExt.extend = MyExt.prototype.extend = function() {
if(arguments.length == 1) {
var obj = arguments[0];
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name];
}
}
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
}
如果有兴趣, 参见 jquery-1.3.1.js ... 550 - 600行左右,
原文:
http://hi.baidu.com/ezscript/blog/item/05a73752e2d2d32842a75bc4.html
分享到:
相关推荐
标题:“浅谈jQuery的应用” 知识点: 1. jQuery简介:jQuery是一个继prototype之后的优秀JavaScript框架,由John Resig创建于2006年初。它简化了JavaScript以及Ajax编程,以“write less, do more”为宗旨,用更...
1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 jquery.fn.extend(object);给jQuery对象添加方法。 $.extend({ add:function(a,b){return a+b;} }); //$.add(3,4); //return 7 jQuery添加...
这篇文章将深入探讨`$.extend`在jQuery中的使用,以及它如何帮助我们处理JSON对象。 首先,`$.extend`方法的基本语法是: ```javascript jQuery.extend([deep], target, object1[, objectN]); ``` 这个方法接受一...
jQuery.extend(jQuery.easing, { easeOutExpo: function (x, t, b, c, d) { return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b; }, easeOutBounce: function (x, t, b, c, d) { if ((t /= d)...
在jQuery库中,`each`方法是一个非常常用且强大的功能,它允许我们遍历集合中的每个元素,并对每个元素执行特定的操作。这篇文章将详细讲解`$.each`、`this.each`和`$.fn.each`这三种不同的`each`用法。 首先,我们...
- Mixin的原理类似于将对象上的方法合并到组件上,类似于jQuery中的`$.extend`方法。不过,React对Mixin进行了额外的处理以避免冲突。 **Mixin的原理:** - Mixin本质上是一个提供了一组方法的对象,将这个对象中的...
此外,框架的扩展性和插件开发能力至关重要,如jQuery的extend方法和Deferred对象,用于处理异步操作。最后,考虑到与其他库的共存,框架通常会提供noConflict方法,以避免命名冲突。 总结而言,JavaScript框架的...
- **浅谈JavaScript中面向对象的深拷贝和浅拷贝**:更深入地理解深拷贝和浅拷贝的概念,以及它们在面向对象编程中的应用。 通过上述介绍和示例,相信读者已经对`cloneNode()`方法有了更全面的理解。在实际开发过程...