我使用Require.js和骨幹,並有一個骨幹路由器模塊,如:變量函數名需要與骨幹
define([
"views/global",
"views/project/edit",
"views/project/list",
], function(GlobalView, edit, list){
return Backbone.Router.extend({
routes: {
"projects/:action/" : "projectsAction",
},
projectsAction : function(action) {
/* .... lots of code cut out here .... */
/* Create and render the action specified */
this.subView = new eval(action+"()").render();
}
});
});
這是一個例子,我已經砍掉了很多的設置代碼出來項目行動。
我想要URL:/projects/list
運行projectAction,action
param = list
,然後list
模塊從Require.js函數被調用。我目前正在使用eval()
,但我想知道是否有更好的方法?
基本上,在Javascript中,你可以用另一個變量名稱引用一個變量,而不使用eval()
?
我想一個較短的版本是,你怎麼辦:
var name = "Math.random";
name(); // = 0.34343....
沒有eval()
?
很感謝,這看起來像我問的最接近的東西。雖然後見之明我的問題是模棱兩可的,所以有一個更好的方法(見下文),我實際上正在嘗試做什麼。 – Mark 2013-04-09 09:28:34