美文网首页
函数预编译

函数预编译

作者: 江湖小盛 | 来源:发表于2021-05-31 16:30 被阅读0次

流程

  1. 函数被调用时,为当前函数产生AO对象
  2. 查找形参和变量声明作为AO对象的属性名,值为undifiend
  3. 使用实参的值改变形参的值
  4. 查找函数声明作为AO对象的属性名,值为function

示例

function a(test) {
  var i = 0;
  function b() {
      console.log(222)
  }
  b()
}
a(1)

结论

  1. 只要声明了局部函数,函数的优先级最高
  2. 没有声明局部函数,实参优先级最高
  3. 整体来说:局部函数 > 实参> 形参

示例

function a(b, c) {
    console.log(b) // function
    var b = 0;
    console.log(b); // 0
    function b() {
        console.log(222)
    }
}
a(1)

相关文章

网友评论

      本文标题:函数预编译

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