简体   繁体   中英

Javascript Plugin Development , Extending Libraries

i got two javascript objects api and myApi :

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

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

i want to add all myApi.* functions to api object without overriding api.foo .

Indeed, i want learn how to extend APIs to each other and developing plugins with javascript.

What are the best practices in this subject?

To answer the first part of your question, you can modify the merge method I use in some of my code:

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;
    };
} 

To not overwrite preexisting objects, you would have to add a check:

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;
    };
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM