• Javascript深入浅出(二)


    链式作用域
    父对象的所有变量,对子对象都是可见的,
    但子对象的所有变量,对父对象都是不可见的
     
    闭包
    定义在一个函数内部的函数,方便读取其他函数内部变量,且这些变量的值始终保持在内存中
    优点:灵活方便,封装
    缺点:内存消耗很大,IE中可能导致内存泄露
    function f1(){
        var n=999;
        function f2(){
          alert(n);
        }
        return f2;
      }
      var result=f1();
      result(); // 999
     
    执行上下文就是在执行代码之前,把将要用到的所有的变量都事先拿出来,有的直接赋值了,有的先用undefined占个空
    全局作用域的上下文环境数据内容为:
    普通变量(包括函数表达式)
    undefined
    函数声明
    赋值
    this
    赋值
    局部作用域的上下文环境数据内容为:
    参数
    赋值
    arguments
    赋值
    自由变量的取值作用域
    赋值
    eval()
     
    执行上下文栈
    全局上下文环境 调用函数,产生函数上下文环境 函数调用完成,函数上下文环境消除 全局上下文环境
    处于活动状态的执行上下文环境只有一个
     
    一切(引用类型)都是对象,对象是属性的集合
    console.log(typeof $); // function console.log($.trim(" ABC ")); // function
     
    对象都是通过函数创建的
    var obj = { a: 10, b: 20 };
    var obj = new Object();
    obj.a = 10;
    obj.b = 20;
     
    function Fn() {}
    var fn1 = new Fn();
     
    var arr = [5, 'x', true];
    var arr = new Array();
    arr[0] = 5;
    arr[1] = 'x';
    arr[2] = true;
     
    语法糖意指那些没有给计算机语言添加新功能,而只是提供更实用的编码方式,有益于更好的编码风格,更易读的语法
     
    作用域包括全局作用域和局部作用域,没有块级作用域
     
    作用域链在当前作用域查找自由变量查找无果,继续逐层查找各作用域,直至全局作用域的路径
     
    自由变量在某作用域中使用,却没有在该作用域中声明的变量
     
    面向对象编程(OOP)
    Prototype模式(用于构造函数)
    function Animal(){
        this.species = "动物";
      }
    function Cat(name,color){
    this.name = name;
    this.color = color;
    }
    Cat.prototype.type = '猫科动物';
    Cat.prototype.eat = function(){alert('吃鱼');}
    var cat1 = new Cat('大黄','yellow');
    var cat2 = new Cat('大毛','brown');
    alert(cat1.type);
    cat2.eat();
    Cat.prototype = new Animal();
    Cat.prototype.construtor = Cat;
    alert(cat1.species);
  • 相关阅读:
    职责链模式——行为型模式(1)
    创建型模式总结
    命令模式——行为型模式(2)
    桥接模式——结构型模式(2)
    享元模式——结构型模式(6)
    外观模式——结构型模式(5)
    适配器模式——结构型模式(1)
    组合模式——结构型模式(3)
    oencv学习(10)opencv mul()每个元素相乘
    oencv学习(8)背景消除
  • 原文地址:https://www.cnblogs.com/crisis66/p/8183198.html
Copyright © 2020-2023  润新知