美文网首页
8.with语句

8.with语句

作者: 静昕妈妈芦培培 | 来源:发表于2021-09-18 09:29 被阅读0次

with会形成自己的作用域,其执行上下文的AO对象即为其参数对象
在严格模式下,写with语句是会报错的,一般不建议使用with语句

/**
 * 
 * with语句会立马执行
 * with语句会形成自己的作用域,其执行上下文的AO指向其参数对象
 * with语句执行时,遇到变量,先去去参数对象中查找,找不到再去其父级作用域找
 */
function foo() {
  return function bar() {
    
    with({name: "why", age: 18}) {
      //作用域链: 其参数对象 -> AO(bar) -> AO(foo) -> GO
      console.log(name) //why
    }
  }
}

const bar = foo()
bar()

//with语句可以在任何地方执行
with({name: "kobe",age:40}) {
  console.log(name) //kobe
}

非常感谢王红元老师的深入JavaScript高级语法让我学习到很多 JavaScript 的知识

相关文章

网友评论

      本文标题:8.with语句

      本文链接:https://www.haomeiwen.com/subject/nolsgltx.html