Javascript插件开发,扩展库

时间:2010-10-12 20:35:22

标签: plugins javascript

我有两个javascript对象apimyApi

var api = {};
api.foo = function(){ ... };
api.foo2 = function(){ ... };

var myApi = {};
myApi.foo = function(){ ...};
myApi.myFoo = function(){ ...};
myApi.myFoo2 = function(){ ...};

我想将所有myApi.*个函数添加到api对象,而不会覆盖api.foo

确实,我想学习如何相互扩展API并使用javascript开发插件。

此主题的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

要回答问题的第一部分,您可以修改我在某些代码中使用的merge方法:

if (typeof Object.merge !== 'function') {
    Object.merge = function (o1, o2) { // Function to merge all of the properties from one object into another
        for(var i in o2) { o1[i] = o2[i]; }
        return o1;
    };
} 

要不覆盖先前存在的对象,您必须添加一个支票:

if (typeof Object.merge !== 'function') {
    Object.merge = function (o1, o2) { // Function to merge all of the properties from one object into another
        for(var i in o2) { if(!(i in o1)) o1[i] = o2[i]; }
        return o1;
    };
}