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" οnsubmit="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对象能够使我们很方便的使用某个对象的一些属性,而不用每次都去写
对象名.属性 的形式,直接使用对象名。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值