美文网首页
JS变量对象

JS变量对象

作者: 鲁女女 | 来源:发表于2019-12-10 20:30 被阅读0次

当调用一个函数时,一个新的执行上下文就会被创建,每一个执行上下文都有3个基本属性:变量对象,作用域链、this
全局上下文的变量对象,只有在一个执行上下文中才能被激活,它的各种属性就可以被访问。
全局上下文变量对象初始化是一个window对象,全局对象window是一个预定义的对象,作为JS全局变量(全局属性)和全局函数(全局方法)的占位符。
通过全局window对象可以访问所有预定义对象。变量对象是一个键值对的形式。
函数上下文的变量对象:
函数执行上下文的执行过程:
1. 进入执行上下文,不会执行代码,会激活所有的变量对象(最少有一个arguments对象)
2. 函数声明:由一个名称和一个对应函数值组成的一个变量对象属性被创建,如果变量对象已经存在了相同的属性。则就会被替换。
3. 变量名称和对应值(undefined)组成的变量对象属性被创建,如果变量名称与已经声明形参或函数相同,则变量声明不会覆盖已有的这类属性。

//全局执行上下文的变量对象练习
console.log(a); //undefined
var a = 1;
f();
function f() {
    alert("f"); // 弹出"f"
}
var b = 2;

 //以上代码执行如下;
window.a = undefined;
window.b = undefined;
window.f = function(){
  alert("f");
}
console.log(a); // undefined
a = 1;
f();
b = 2;

//以下来分析函数的执行上下文的变量对象
function f1(a,b) {
     console.log(a); // 1
     var c = 2;
     function fun1() {
          alert("fun1");
     }
     var  a = 5;
     console.log(a); // 5
}
f1(1,2);

//变量对象的执行过程是
function  f1(a,b){
    VO = {
        arguments:{
            a:1,
            b:2
         },
         fun1:function(){
               alert("fun1");
          }
          c:undefined;
          a:undefined;
    }
    console.log(a); // 1
    c = 2;
    a = 5;
    console.log(a); // 5
}

相关文章

  • react 对象动态添加属性 setState

    // js 对象动态添加 js对象动态添加 //总结,给对象动态添加变量属性的方法如下: //obj[变量]=变...

  • 预编译阶段变量函数的提升 和 多个函数的执行顺序

    下面这道题讲解变量和函数的提升 预编译js的变量对象 AO对象 让js引擎去访问1、创建AO对象2、找形参和变量的...

  • JS变量对象

    写在前面的话 接触前端到现在大概也有三个多月了,越深入学习越发现自己理解的学到的只是一知半解。于是翻阅了许多大神如...

  • JS变量对象

    当调用一个函数时,一个新的执行上下文就会被创建,每一个执行上下文都有3个基本属性:变量对象,作用域链、this ...

  • 6.JavaScript中

    JS对象创建: JS通过构造函数创建对象: JS内置对象window: 所有的全局变量都是window的属性 所有...

  • 2018-10-11:JS与jQuery基础

    JS基础 Java: 面向对象 编译型 强变量 服务器JS: 基于对象 解释型 弱变量 客户端 编译和解释:编...

  • js内存泄漏常见的四种情况

    意外的全局变量 js中如果不用 var 声明变量,该变量将被视为 window 对象(全局对象)的属性,也就是全局...

  • vue 遇到的坑

    一、watch监听数据 1、监听普通的变量 1、vue.js里面直接用watch监听对象变量,如果对象变量的属性发...

  • 闭包笔记

    ########js链式作用域:1、子对象会一级一级向上寻找父对象的变量,父对象的所有变量,对子对象都是可见的2、...

  • js程序高级设计

    1.JSON对象 json对象与js对象字面量的区别没有变量声明,在json中没有变量的概念没有末尾的分号json...

网友评论

      本文标题:JS变量对象

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