美文网首页
this指向 、作用域 、js如何实现继承 、闭包 、垃圾回收机

this指向 、作用域 、js如何实现继承 、闭包 、垃圾回收机

作者: Wo信你个鬼 | 来源:发表于2019-02-26 11:20 被阅读0次

this指向

this:一般函数执行时所在环境 (作用域)

1.函数在全局的时候,this指向window
2.当一个函数当做一个对象方法来调用的时候,this指向这个对象
3.通过事件来调任函数的时候,this指向函数的调用者
4.在构造函数中this,指向它实例化对象

作用域

1、全局作用域:定义在函数体外()的所有变量所在的环境
2、局部作用域:定义在函数体内的所有变量所在的环境
3、块级作用域(es6,let):定义在大括号里面的所欲在变量所在的环境

JavaScript如何实现继承

js是通过原型链来继承的,所以构成函数都有一个prototype属性来指向它的原型对象,这个原型对象上的方法或属性都是共享的

闭包

闭包是指一个函数可以访问另一个函数中变量,
常见的形式 : 函数里面嵌套函数

闭包缺点:

内存会增大内存的使用量 使用不当会造成内存泄露

详解:

(1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
(2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

垃圾回收机制:(Garbage Collection)

1、首先给所有的变量或者对象添加一个标记
2、当变量进入环境(引用变量)的时候,上一步标记的内容清除掉
3、当变量离开环境(引用变量)的时候,再重新给这些变量添加上变量
4、这些重新添加上标记的变量或对象会回收到垃圾机制里面
5、js会周期性的清除垃圾回收机制里面所有对象或属性

相关文章

  • this指向 、作用域 、js如何实现继承 、闭包 、垃圾回收机

    this指向 this:一般函数执行时所在环境 (作用域) 1.函数在全局的时候,this指向window2.当一...

  • 02.【JS读书笔记】循环和闭包

    作用域闭包 通常来说,foo()函数执行后,其整个内部作用域都会被销毁(垃圾回收机制),而闭包的“神奇”之处正是可...

  • 闭包的理解。

    js的垃圾回收机制 当一个函数执行完,js引擎会回收不再使用的内存,闭包通过这个作用域的引用,阻止了垃圾回收。 什...

  • 闭包

    一、理解闭包前js基础1、作用域链(作用域、作用域链中有说)。2、js的内存回收机制。一个函数在执行开始的时候,会...

  • 原型链

    原型链 this指向 作用域和预解析 new关键字 闭包 继承 JS 规定,所有对象都有自己的原型对象(proto...

  • 面经(二)

    差不多总结完凡科的面经,开一个新坑吧 js 实现继承的几种方式 √ arguments 作用域链、闭包、作用域 ...

  • JS 闭包(Closure)

    参考阮一峰老师的JS 闭包 理解闭包前需要理解变量作用域、变量提升 JS作用域 那如何让它依次打印,12345呢;...

  • JavaScript---闭包

    闭包,首先搞清楚两件事:1、变量的作用域 2、垃圾回收机制 一:变量的作用域 1、变量的作用域无非就是两种:全局变...

  • 前端知识点汇总

    一、 JS高级 1.作用域/作用域链 2.原型/原型链 3.闭包 4.This指向call/apply 5.jav...

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

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

网友评论

      本文标题:this指向 、作用域 、js如何实现继承 、闭包 、垃圾回收机

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