美文网首页
继承与闭包

继承与闭包

作者: 007_2278 | 来源:发表于2018-01-30 00:32 被阅读10次

继承

  • 继承是指一个对象直接使用另一对象的属性和方法。
  • 继承的方式一
//继承   父类的对象 赋值给 子类的原型  实现继承
    Son.prototype = new Father();
  • 继承方式二
    对象冒充: call,apply方式

作用域

  • 作用域
    ECMAScript 6 之前的JavaScript没有 语句块 作用域;相反,语句块中声明的变量将成为语句块所在代码段的局部变量。例如,如下的代码将在控制台输出 5,因为 x 的作用域是声明了 x 的那个函数(或全局范围),而不是 if 语句块。

  • 全局变量,局部变量
    在所有函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问。在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。

  • 作用域链
    当前代码在环境中执行时,会形成一个作用域链,用来保证执行环境中 访问权限,在作用链中:首先会在当前的作用中寻找,如果找到就使用,若没有找到,到对应的上层去找,以此类推

声明提升

变量(函数)提升:程序运行之前, 会检测所有的代码,如果遇到关键词 var(function) ,表明对应变量是存在,在内存分配一定的区域

  console.log(num);   //错误,没有变量提升
  //变量
  console.log(c);

  var c;
  c = 10;
  console.log(c);

闭包

  • 闭包的概念 :
    闭包是指这样的作用域,它包含有一个函数,这个函数可以调用被这个作用域所封闭的变量、函数或者闭包等内容。通常我们通过闭包所对应的函数来获得对闭包的访问。
     //闭包函数可以把局部变量驻留在内存中
    function fun5() {
      var a = 100;
      return function() {
        return ++a;
      }
    }
    var result = fun5();
    console.log(result());   //101
    console.log(result());   //102
    console.log(result());   //103
    
  • 闭包可以防止大量的全局污染,但是如果不是因为某些特殊任务而需要闭包,在没有必要的情况下,在其它函数中创建函数是不明智的,因为闭包对脚本性能具有负面影响,包括处理速度和内存消耗。

ES6语法中的类与继承

  • class 关键字 : 定义类
  • constructor 关键字 : 构造函数
  • static 关键字用来定义一个类的一个静态方法
  • extends 关键字 : 实现继承
  • super 调用超类
//–––––––––––––––使用 extends继承––––––––––––
    class Son extends Father {
      speak() {
        super.speak();
        alert(this.name + '儿子说');
      }
    }
    let s = new Son('xiaoming',22);
    s.speak();

相关文章

  • 继承与闭包

    继承 继承是指一个对象直接使用另一对象的属性和方法。 继承的方式一 继承方式二对象冒充: call,apply方式...

  • 前端必背知识点

    什么是闭包,为什么要用闭包,闭包会产生哪些影响。 原型。 继承 原生Ajax(必会),jsonp的原理,jsonp...

  • 前端菜鸟帝都一月面试记(答案)

    原文见前端菜鸟帝都一月面试记 闭包和继承,手写继承的几种方式。 闭包看《你不知道的javaScript》上面说,闭...

  • 继承-原型链-作用域-this-闭包-生命周期-垃圾回收机制

    继承-原型链-作用域-this-闭包

  • 自定义控件(Slider)

    继承UIControl 协议和闭包方法封装

  • 闭包和继承

    闭包 嵌套的内部函数引用外部函数内的参数,外部调用时全局有一个变量就形成了闭包,执行函数后由于内部函数引用了参数,...

  • JS闭包-继承

    形成一个闭包函数里面返回一个函数 继承继承的几种方式1.ES6 extends 继承的几种方式1.构造函数继承构造...

  • js-继承和闭包

    继承和闭包 一、面向对象的三大特征 封装 继承 多态 二、什么是继承 继承是面向对象软件技术当中的一个概念,与多态...

  • 2018-07-10swift4与swift 3.3 语法重拾(

    函数与闭包 闭包

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

网友评论

      本文标题:继承与闭包

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