《javascript高级程序设计》第四章 Variables,scope,and memory

4.1 基本类型和引用类型的值 primitive and reference values
  4.1.1 动态的属性 dynamic properties
  4.1.2 复制变量值 copying values
  4.1.3 传递参数 argument passing

function setName(obj) {
    obj.name = "Nicholas";
    obj = new Object();
    obj.name = "Greg";
}
var person = {};
setName(person);
alert(person.name); //"Nicholas"

当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。可以把ECMAScript函数的参数想象成局部变量。

4.1.4 检测类型 determining type

4.2 执行环境及作用域 execution context and scope

var color = "blue";
function changeColor(){
    var anotherColor = "red";
    function swapColors(){
        var tempColor = anotherColor;
        anotherColor = color;
        color = tempColor;
        
    }
    
    swapColors();
}

changeColor();                

上面执行了什么?下次再好好想想哦,反正2015/05/11木有想起来


  4.2.1 延长作用域链 scope chain augmentation
  4.2.2 没有块级作用域 no block level scopes
4.3 垃圾收集 garbage collection
  4.3.1 标记清除 mark-and-sweep
  4.3.2 引用计数 reference counting
  4.3.3 性能问题 performance
  4.3.4 管理内存 managing memory

原文地址:https://www.cnblogs.com/della/p/3295369.html