开发者社区 问答 正文

jQuery插件开发-为什么要用extend()方法?

我知道jQuery插件开发中有一种是extend,是合并对象用的。
为什么要用jQuery.extend() 的方法扩展jQuery方法?
而不是直接用jQuery.pluginname = function(){} 这样的方法?
在我看来这两种都是直接在jQuery命名空间下加一个方法,那为什么更推荐使用extend方法来扩展??

展开
收起
a123456678 2016-03-11 14:22:37 2092 分享 版权
1 条回答
写回答
取消 提交回答
  • 先回答你的问题:
    jQuery.extend({pluginname: function() {}})和jQuery.pluginname = function() {}没有什么区别,都是去扩展了jQuery本身,也就是$对象,只是前者会在定义多个plugin时方便点:

    // without jQuery.extend()
    jQuery.pluginA = function() {};
    jQuery.pluginB = function() {};
    jQuery.pluginC = function() {};
    
    // with jQuery.extend()
    jQuery.extend({
        pluginA: function() {},
        pluginB: function() {},
        pluginC: function() {}
    });
    其实这个和模拟类时怎样扩展prototype是一样的:
    
    全选复制放进笔记// 有人这么写
    function ClassA() {}
    ClassA.prototype.funcA = function() {};
    ClassB.prototype.funcB = function() {};
    
    // 也有人这么写
    function ClassB() {}
    ClassB.prototype = {
        constructor: ClassB,
        funcA: function() {},
        funcB: function() {}
    };
    2019-07-17 18:59:14
    赞同 展开评论
问答分类:
问答地址: