2010-10-12 30 views
0

我有兩個JavaScript對象apimyApi的Javascript插件開發,擴展庫

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開發插件。

這個問題的最佳實踐是什麼?

回答

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