看看下面的片段。有没有我可以写的函数来代替...
生成可以在另一个函数中重用的路线?就像是var route = this.show.fullyQualifiedName
也许?
var services = {
'github.com': {
api: {
v2: {
json: {
repos: {
show: function(username, fn) {
var route = ...;
// route now == 'github.com/api/v2/json/repos/show'
route += '/' + username;
return $.getJSON('http://' + route).done(fn);
}
}
}
}
}
}
}
不,没有,至少没有使用“反射”风格的操作。
对象不知道包含它们的对象的名称,尤其是因为相同的对象(引用)可能包含在many对象。
唯一可以做到的方法是从顶部对象开始并向内操作,例如:
function fillRoutes(obj) {
var route = obj._route || '';
for (var key in obj) {
if (key === '_route') continue;
var next = obj[key];
next._route = route + '/' + key;
fillRoutes(next);
}
}
这将放置一个新的_route
每个对象中包含该对象路径的属性。
See http://jsfiddle.net/alnitak/WbMfW/ http://jsfiddle.net/alnitak/WbMfW/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)