我有两个javascript对象api
和myApi
:
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开发插件。
此主题的最佳做法是什么?
答案 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;
};
}