我有這樣的代碼中的骨幹項目執行:可執行代碼從對象(優選不EVAL())
main.key1 = new view.a.b.c({prop: val});
main.key2 = new view.x.y.z({prop: val});
//and so on, about 10 views with about 5 identical properties
我有一個對象像這樣的主要對象中定義:
var main = this;
var viewmap = {key1: 'view.a.b.c', key2: 'view.x.y.z'} // and so on
我要的是用我的對象來代替上面的代碼,因爲意見必須來自一個地圖。
我不反對eval()
100%,但我不希望有使用它。但是,如果這是唯一的方法,我會接受。問題是,我甚至不知道如何使用eval()
用於此目的。
我想是這樣的:
for(view in viewmap){
main[view] = eval('new ' + viewmap[view] + '({prop: val});');
}
但它不工作。
請幫忙。
甲方式混淆,這將是通過穿過視圖對象'viewObj = viewObj逐步推進[ARR [i到分裂由'.'字符串和環]]' – SmokeyPHP 2015-04-03 11:49:45