`
ezscript
  • 浏览: 34120 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

浅谈jquery中的extend

阅读更多
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的应用.pdf

    标题:“浅谈jQuery的应用” 知识点: 1. jQuery简介:jQuery是一个继prototype之后的优秀JavaScript框架,由John Resig创建于2006年初。它简化了JavaScript以及Ajax编程,以“write less, do more”为宗旨,用更...

    浅谈jquery.fn.extend与jquery.extend区别

    1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 jquery.fn.extend(object);给jQuery对象添加方法。 $.extend({  add:function(a,b){return a+b;} }); //$.add(3,4); //return 7 jQuery添加...

    浅谈jQuery中的$.extend方法来扩展JSON对象

    这篇文章将深入探讨`$.extend`在jQuery中的使用,以及它如何帮助我们处理JSON对象。 首先,`$.extend`方法的基本语法是: ```javascript jQuery.extend([deep], target, object1[, objectN]); ``` 这个方法接受一...

    浅谈jQuery animate easing的具体使用方法(推荐)

    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

    在jQuery库中,`each`方法是一个非常常用且强大的功能,它允许我们遍历集合中的每个元素,并对每个元素执行特定的操作。这篇文章将详细讲解`$.each`、`this.each`和`$.fn.each`这三种不同的`each`用法。 首先,我们...

    浅谈React中组件逻辑复用的那些事儿

    - Mixin的原理类似于将对象上的方法合并到组件上,类似于jQuery中的`$.extend`方法。不过,React对Mixin进行了额外的处理以避免冲突。 **Mixin的原理:** - Mixin本质上是一个提供了一组方法的对象,将这个对象中的...

    浅谈JavaScript 框架分类

    此外,框架的扩展性和插件开发能力至关重要,如jQuery的extend方法和Deferred对象,用于处理异步操作。最后,考虑到与其他库的共存,框架通常会提供noConflict方法,以避免命名冲突。 总结而言,JavaScript框架的...

    javascript 拷贝节点cloneNode()使用介绍.docx

    - **浅谈JavaScript中面向对象的深拷贝和浅拷贝**:更深入地理解深拷贝和浅拷贝的概念,以及它们在面向对象编程中的应用。 通过上述介绍和示例,相信读者已经对`cloneNode()`方法有了更全面的理解。在实际开发过程...

Global site tag (gtag.js) - Google Analytics