摘要:有個挫一點的方法寫個,根據(jù)目前要跳到哪個頁面,來判斷執(zhí)行哪個這種方法是,就是維護起來不方便,以后每添一個新頁面都要來維護這個。
這個需求是在我搭建前端項目框架的時候遇到的:
由于我走的是前后端完全分離的路線,那前端部分少了后端的支持,所以就少不了要做點路由、分發(fā)之類的工作,而在用路由跳轉(zhuǎn)到新的“頁面”后,我需要執(zhí)行相應(yīng)的function來獲取第一版的數(shù)據(jù)。有個挫一點的方法:寫個switch,根據(jù)目前要跳到哪個頁面,來判斷執(zhí)行哪個function;這種方法work是work,就是維護起來不方便,以后每添一個新“頁面”都要來維護這個switch。
PHP有個很不錯的動態(tài)機制:
用這個動態(tài)機制來做路由非常方便,因此在做前端框架的路由的時候,我就想著會不會有類似的解決方案呢?
答案是有的,利用JS的eval函數(shù)(PHP也有同名函數(shù)),就可以通過拼字符串來執(zhí)行JS代碼了,下面是例子:
function test() { alert(111); }; var functionName ="test"; if(typeof(window[functionName]) === "function") { eval(functionName + "()"); }值得注意的是判斷字符串對應(yīng)的function是否存在(對于一個框架來說會靈活得多,比如說:不是每一個頁面都需要獲取第一版數(shù)據(jù)),我試過用jquery的$.isFunction和原生typeof方法與eval函數(shù)配合,都無法識別到對應(yīng)的function,最后還是靠window[functionName]獲取到function對應(yīng)的變量,這樣才能進行判斷。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91571.html
摘要:生成終極匹配器主要是返回一個匿名函數(shù),在這個函數(shù)中,利用方法生成的匹配器,去驗證種子集合,篩選出符合條件的集合。在這個終極匹配器中,會將獲取到的種子元素集合與匹配器進行比對,篩選出符合條件的元素。 讀Sizzle的源碼,分析的Sizzle版本號是2.3.3。 Sizzle的Github主頁 瀏覽器原生支持的元素查詢方法: 方法名 方法描述 兼容性描述 getElementBy...
摘要:基礎(chǔ)知識字符串中常用的方法在中用單雙引號包裹起來的都是字符串字符串就是由到多個字符組成的特點一以數(shù)字作為索引,從零開始特點二有屬性,存儲的是當前字符串中字符的個數(shù)字符長度如果指定的索引不存在獲取的結(jié)果是真實項目中,我們經(jīng)常操作字符串,此時 js基礎(chǔ)知識 JavaScript 字符串中常用的方法 在JS中用單(雙)引號包裹起來的都是字符串 var str=welcome to my ho...
閱讀 1053·2023-04-25 17:51
閱讀 2858·2021-11-23 09:51
閱讀 1483·2021-11-08 13:21
閱讀 2457·2021-09-22 15:14
閱讀 1522·2019-08-30 12:48
閱讀 1086·2019-08-29 12:44
閱讀 1146·2019-08-26 12:21
閱讀 1403·2019-08-26 10:47