zoukankan      html  css  js  c++  java
  • js中with、this的用法

    with 语句 为一个或一组语句指定默认对象。

    用法:with (<对象>) <语句>;

    with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:

    x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
    y = Math.tan(14 * Math.E);

    当使用 with 语句时,代码变得更短且更易读:

    with (Math) {
       x = cos(3 * PI) + sin(LN10);
       y = tan(14 * E);
    }

    1)简要说明  
           with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。  
    
    2)语法格式  
    with(object instance)  
    {  
            //代码块  
    }  
           有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:  
    with(objInstance)  
    {  
           var str = 属性1;  
    .....  
    } 去除了多次写对象名的麻烦。  
    
    3)举例  
    <script language="javascript">  
    <!--  
    function Lakers() {  
           this.name = "kobe bryant";  
           this.age = "28";  
           this.gender = "boy";  
    }  
    var people=new Lakers();  
    with(people)  
    {  
           var str = "姓名: " + name + "<br>";  
           str += "年龄:" + age + "<br>";  
           str += "性别:" + gender;  
           document.write(str);  
    }  
    //-->  
    </script>  
    代码执行效果如下:  
    姓名: kobe bryant  
    年龄:28  
    性别:boy 

    this 对象 返回“当前”对象。在不同的地方,this 代表不同的对象。如果在 JavaScript 的“主程序”中(不在任何 function 中,不在任何事件处理程序中)使用 this,它就代表 window 对象;如果在 with 语句块中使用 this,它就代表 with 所指定的对象;如果在事件处理程序中使用 this,它就代表发生事件的对象。

    一个常用的 this 用法:

    <script>
     ...
     function check(formObj) {
        ...
     }
     ...
    < /script>
    
    <body ...>
     ...
    < form ...>
     ...
    < input type="text" ... onchange="check(this.form)">
     ...
    < /form>
     ...
    < /body>

    这个用法常用于立刻检测表单输入的有效性。

  • 相关阅读:
    隔离模式-常用的架构设计原则
    代理模式-常用的架构设计原则
    重试模式-常用的架构设计原则
    断路器模式-常用的架构设计原则
    磁盘IOPS(每秒读写次数)的计算方法与测量
    Spring深入浅出(七),自动装配,byName/byType
    Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用)
    Spring深入浅出(五),依赖注入,构造函数/设值/注入内部Bean
    Spring深入浅出(四),Spring Bean定义继承
    【算法】算法的艺术(四)
  • 原文地址:https://www.cnblogs.com/zyh-club/p/4970257.html
Copyright © 2011-2022 走看看