我有下面的代碼,我使用製作一個簡單的模板引擎。html頁面如下: -如何將字符串轉換爲JavaScript中的函數?
<ns tmp="red"></ns>
<ns tmp="blue"></ns>
在另一方面,我有一個JavaScript作爲一個jQuery插件讀取標籤然後獲取tmp
的屬性,現在我想要接收該字符串的值,然後將其轉換爲函數,以便在對象內部調用預定義的值,但將字符串轉換爲函數不起作用。我在堆棧溢出中提到了一些問題,但沒有用。然後我提到下面的JQuery代碼。
(function($){
/*Collection of the template data*/
var k=template();
/*This retrieves all the custom tags and gets the template
property to point to.*/
var templateArray=$('ns');
templateArray.each(function(){
var template=$(this).attr('tmp');
var funcName=window[template]();//This does not work
alert(l());
});
})(jQuery);
function template(){
var t={
blue:function(){
return "Hello";
},
red:function(){
return "ff";
}
};
return t;
}
請建議如何與此相處。我也有這個小提琴。隨意編輯,這樣我就能夠調用的對象內部的功能在某些way.Thanks 小提琴鏈接FIDDLE LINK
你調用'窗口[「紅色」]'和'窗口[「藍」];'但目前還沒有被命名爲紅色和藍色的窗口中定義的方法。 – 0x499602D2
所以你實際上想調用k [模板],而不是窗口[模板],對不對? – Qnan
@David考慮我想獲取函數或將字符串轉換爲函數,並將其稱爲k.MyFunction()。而不是將它附加到窗口上,還有其他方法可以使用對象k來調用其中的函數。藍色 –