zoukankan      html  css  js  c++  java
  • 避免使用 JS 特性 with(obj){}

    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

    JavaScript提供了一个with语句,本意是想用它来快捷地访问对象的属性,不幸的是,它的结果可能有时不可预料,所以应该避免使用它

    例如

    with (obj) {
    
      a = b
    
    }

    它等于这些语句中的某一条,

    a = b;
    
    a = obj.b
    
    obj.a = b
    
    obj.b = obj.a

    你无法辨别出得到的是这些语句中的哪一条,而且with本身严重影响了Javascript处理器的速度,它的本意是好的,但如果没有它,Javascript语言会更好一点。

  • 相关阅读:
    prometheus学习系列三:node_exporter安装部署
    prometheus学习系列一: Prometheus简介
    prometheus学习系列二: Prometheus安装
    crontab定时任务不执行,单独运行sh生效
    glusterfs+heketi为k8s提供共享存储
    kubernetes的安装方法
    阿里云负载均衡权重管理脚本
    ldap配置系列二:jenkins集成ldap
    ldap配置系列一:ldap的安装
    ldap配置系列三:grafana集成ldap
  • 原文地址:https://www.cnblogs.com/cnundefined/p/7061301.html
Copyright © 2011-2022 走看看