我在名爲tpl()
的函數內部有一個名爲html
的對象。將對象的層次結構作爲參數傳遞給它的父函數
html = {
intro: ['intro', 'html'],
common: { header: ['common', 'header', 'html'] },
more:{ header: { link: ['hello', 'world'] } }
};
我試圖通過將它的層次結構作爲參數傳遞給tpl()
訪問html
的價值觀;
我將字符串common.header
作爲參數傳遞,以獲取內部對象的內容。
【示例】:
的問題是,當我需要針對更深層嵌套對象:
var b = tpl('more.header.link'); // how can i make this work ?
這是我寫的功能,不過,我想使其更具動感(可以使用更深的物體)。
var tpl = function(path){
if(!path){ return false; }
var that = this;
that.html = {
intro: ['intro', 'html'],
common: { header: ['common', 'header', 'html'] },
more: { header: { link: ['hello', 'world'] } }
};
path = path.split('.');
return (!!path[1] ? that.html[path[0]][path[1]] : that.html[path[0]]).join('');
/*
// Here is where I am stuck
for(var i = 0; i < path.length; i++){
if(path[i][ path[i+1] ]){}
}
*/
};
感謝這正是我想要做的! – Pierre 2012-01-31 16:11:40