麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

如何用JavaScript動態呼叫函數(兩種方式)

2019-11-20 22:45:04
字體:
來源:轉載
供稿:網友
近來的使用者,越來越強調 UI 介面的互動,漸漸原本對一條小龍來說只是配角的 JavaScript (以下簡稱 JS) 變成的主角,占了很大一塊的用途。

像是最近很熱門的 ASP.NET 的 MVC 里面就直接Include JQuery 可見一般。

MVC 用了一陣子,一條小龍甚至感覺 MVC 中的 Controller 根本就是 JS 在控制的,這樣怎么把 UI 工作獨立,切給美工用,感覺也是蠻大的疑問。
看來后面的美工,只會繪圖、拉畫面是不行的,一定要會 JS、Flash 等等前端控制語言,才會吃香。

這邊,一條小龍介紹一下,如何用 JavaScript 動態呼叫函數,這個時候需要先介紹一下 前提,這樣讀者才能了解,下面的技術能應用在哪里。
一般會使用到 動態呼叫,基本上都是 后端動態產生 JS的程式碼,在由前端的 JS 框架,來呼叫使用。

會需要這樣做的用途,不外乎,動態設定 UI 的欄位、樣式、資料 等等,另外一種可能,就是保留 JS 框架的擴充性,讓后面的開發人員,可以根據每只程式的特性,在額外編寫代碼來擴充原有JS 框架的功能。

下面 就來介紹一下,動態呼叫函數 目前就一條小龍所知應該有下面 兩種方式
復制代碼 代碼如下:

function myAlert(value) {
document.write("myAlert - " + value + "<br>");
}
$(function () {
eval("myAlert")("test");
window["myAlert"]("test");
}

一般來說,比較正規還是要使用 window 這個object 來查詢 function 是否存在,用 eval 彈性太大比較有風險。

而且直接照上述來實作,會有蠻大風險,一但被呼叫的函數不存在,整個畫面就會出錯,所以 在使用上,需再加上判斷式,從這角度這時eval 就無法使用了,因為使用 eval 就是要產生 function 這個 object 了,而 window 只是查詢有無 object,所以當 function 不存在,eval 就會直接報錯了,這樣 讀者應該比較能了解其中差異。
范例程式如下
復制代碼 代碼如下:

function myAlert(value) {
document.write("myAlert - " + value + "<br>");
}
$(function () {
var fnName = "myAlert";
var fn = window[fnName];
if (typeof fn == "function") {
fn.apply(window, ["window - test"]);
}
}

最后,是我自己又另外想出的一種方式,如下
復制代碼 代碼如下:

function myAlert(value) {
document.write("myAlert - " + value + "<br>");
}
$(function () {
if (typeof (myAlert) == 'function') {
myAlert("typeof - test");
}
}

雖然這種方式會犧牲一些彈性,但相反卻可以用這種方式,來限制后續開發人員的命名原則,例如像是框架中的 Init() Load() 等等,皆可用如此方式則可以將使用方式固定下來,不至于發散出去,也方便后續的維護成本。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美a级毛片 | 国产精品久久久久久一区二区三区 | 九九热精 | 国产精品久久久久久影院8一贰佰 | 精品成人免费一区二区在线播放 | 免费黄色小视频网站 | 欧美黄色一区 | 国产一区二区免费在线观看视频 | 91网在线播放 | www.777含羞草 | 一级毛片播放 | 国产又白又嫩又紧又爽18p | 欧美精品久久久久久久多人混战 | 亚洲网站免费看 | 黄色一级视频 | 美女羞羞视频网站 | a视频网站| 欧美成人黄色 | 中文字幕在线观看亚洲 | 亚洲成年人免费网站 | 免费三级大片 | 伦一区二区三区中文字幕v亚洲 | 久久国产精品一区 | 日韩电影av在线 | 日本精品视频一区二区三区四区 | 欧美久久久久久久久 | 免费毛片在线 | 黄网站进入 | 高清视频91 | 一级做受毛片免费大片 | 久久亚洲美女视频 | 欧美成人综合视频 | 久久亚洲成人 | 日韩av在线播放一区 | 久久久久久久久久一本门道91 | 在线播放黄色网址 | 中文字幕网址 | 高清av在线 | 日韩激情一区二区三区 | av免费av | av在线免费看网址 |