javaScript中的with()是什麼方法?
首先來看一段程式碼:
<html>
<head>
<script type="text/javascript">
function validate_email(field, alerttxt) {
with(field)
apos = value.indexOf("@")
dotpos = value.lastIndexOf(".")
if(apos < 1 || dotpos - apos < 2) {
alert(alerttxt);
return false
} else {
return true
}
}
}
function validate_form(thisform) {
with(thisform) {
if(validate_email(email, "Not a valid e-mail address!") == false) {
email.focus();
return false
}
}
}
</script>
</head>
<body>
<form action="submitpage.htm" onsubmit="return validate_form(this);" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
</html>
這個是一個網站教程的例子,相信很多人都會有疑問,裡面在with ( )中嵌套了if,這個with()是什麼方法?這個with()就是和if 一起用的嗎?
其實with()和if()沒有關係。
with(obj)作用就是將後面的{}中的語句塊中的預設物件設定為obj,那麼在其後面的{}語句塊中引用obj的方法或屬性時可以省略obj.的輸入而直接使用方法或屬性的名稱。比如:
不用with()時:
function validate_email(field,alerttxt){
field.apos=value.indexOf("@")
field.dotpos=value.lastIndexOf(".")
if (field.apos<1 || field.dotpos-field.apos<2) {
alert(alerttxt);
return false
}else {
return true
}
}
用了with(field)後,上面函式中的field.都可以省略了,減少了輸入的工作量。
with物件能夠使我們很方便的使用某個物件的一些屬性,而不用每次都去寫
物件名.屬性 的形式,直接使用物件名。