国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS動態調用方法名示例介紹

2019-11-20 21:26:08
字體:
來源:轉載
供稿:網友
先看看JS的一個函數

JavaScript eval() 函數
定義和用法

eval() 函數可計算某個字符串,并執行其中的的 JavaScript 代碼。
語法

eval(string)

參數 描述

string 必需。要計算的字符串,其中含有要計算的 JavaScript 表達式或要執行的語句。

返回值

通過計算 string 得到的值(如果有的話)。

說明

該方法只接受原始字符串作為參數,如果 string 參數不是原始字符串,那么該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,并通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。

拋出

如果參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。

如果非法調用 eval(),則拋出 EvalError 異常。

如果傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。

提示和注釋

提示:雖然 eval() 的功能非常強大,但在實際使用中用到它的情況并不多。

實例

例子 1

在本例中,我們將在幾個字符串上運用 eval(),并看看返回的結果:
復制代碼 代碼如下:

<script type="text/javascript">

eval("x=10;y=20;document.write(x*y)")

document.write(eval("2+2"))

var x=10
document.write(eval(x+17))

</script>

輸出:

200
4
27

例子 2

看一下在其他情況中,eval() 返回的結果:
復制代碼 代碼如下:

eval("2+3") // 返回 5
var myeval = eval; // 可能會拋出 EvalError 異常
myeval("2+3"); // 可能會拋出 EvalError 異常

可以使用下面這段代碼來檢測 eval() 的參數是否合法:
復制代碼 代碼如下:

try {
alert("Result:" + eval(prompt("Enter an expression:","")));
}

catch(exception) {
alert(exception);
}

第一種方法就是使用js里面的eval

下面是自己寫的例子
復制代碼 代碼如下:

call("showmsg");

function call(functionName){
eval("this."+functionName+"()");
}
function showmsg(){
alert("success");
}

eval能將你拼接的字符串自動識別為方法,并調用。

但弊端也是很大的,想象一下,某個人改你調用地方的方法名,便能調用你的任意方法。

第二種方法主要用作自己定義的方法

主要是第二種方法需要特定的方式去寫
復制代碼 代碼如下:

function call(functionName) {
showmsgs["showmsg"]();
}

var showmsgs = { showmsg: function () {
alert("success");
}
}
call("showmsg");
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘谷县| 库车县| 玛曲县| 通辽市| 宣武区| 石渠县| 武安市| 义乌市| 绩溪县| 新郑市| 仁化县| 大邑县| 泰安市| 原平市| 比如县| 阿拉尔市| 黔江区| 中卫市| 利津县| 灵宝市| 潢川县| 永昌县| 仪陇县| 福鼎市| 兴宁市| 云和县| 平利县| 西充县| 贡觉县| 轮台县| 山西省| 岐山县| 化州市| 舞阳县| 鸡东县| 黄龙县| 乌海市| 宣汉县| 冕宁县| 安塞县| 玉门市|