zoukankan      html  css  js  c++  java
  • with和catch改变作用域链

    总结笔记:

    with和catch会将对象中标识符的解析添加到作用域链的最前端,

    标识符的解析就是with()和catch()括号中的对象。

    var x = 10, y = 10;
    
    with ({x: 20}) {
    //作用域链:对象{x: 20}  ---->   global(var x=10, y=10)
    
    var x = 30, y = 30; 
    //这时候会改变作用域链中的值,var x=30先沿着作用域找到在对象{x:20}中的x,
    //然后x的值改变为30,var y=30先沿着作用域链找到global的y值,将其改为30   
    
      alert(x); // 30
    
      alert(y); // 30
     
    
    }
    //with语句执行完之后,对象标识符的解析(在括号中的对象{x:20})将会被销毁
    
    alert(x); // 10
    alert(y); // 30
    

      

     

    with也是一个对象,含有__proto__属性,指向Object.prototype

      

  • 相关阅读:
    每周总结
    5月2日学习日志
    5月1日学习日志
    4月30日学习日志
    4月29日学习日志
    4月28日学习日志
    4月27日学习日志
    每周总结
    vue滚动插件BetterScroll
    vue 获取页面高度
  • 原文地址:https://www.cnblogs.com/xuhaodong/p/with.html
Copyright © 2011-2022 走看看