1、一切引用类型都是对象,对象时属性的集合;typeof null === 'object'(例外);

2、对象都是通过函数创建来的,比如var obj = new Object();typeof Object === 'function';

3、函数有隐藏属性prototype,对象有隐藏属性__proto__;

Func.prototype.constructor === Func;

func.__proto__ === Func.prototype;

4、对象的__proto__属性都指向创建它的函数的prototype;

Object.prototype.__proto === null;

Object.__proto__ === Function.prototype;

Function.__proto__ === Function.prototype;

Function.prototype.__proto === Object.prototpe;

5、instanceof 其实是一种继承关系,A instanceof B(沿着A的__proto__找,同时沿着B的prototype找,如果最终能找到同一个饮用,就true);

6、访问一个对象的属性,如果自身没有,则沿着__proto__向上找,这就是原型链;

7、var obj = {},arr = [];

obj.toString === '[object Object]';

arr.toString === '';  说明Array.prototype.toString方法被改了;

8、处于活动状态的执行上下文只有一个;

作用域是一个抽象的概念,其中没有变量,要通过作用域对应的执行上下文来获取变量的值,且不同的调用会产生不同的上下文;

函数是在定义时就确定了函数体内部自由变量的作用域;

除了全局作用域,只有函数是可以创建一个独立的作用域;

要区一个变量的值,要到创建它的函数的那个作用域中取值,这就是所谓的静态作用域;

在A作用域中使用的变量a,却没在A中声明,则称a是自由变量;

9、1⃣️ 函数作为构造函数用,this指向new出来的对象;

2⃣️ 函数作为对象的一个属性被调用,this指向该对象;

3⃣️ 在call、apply中,this指向传入的对象;

4⃣️ 全局调用普通函数,this指向window;

10、闭包特性:函数嵌套函数;函数内部可引用外部变量;变量不会被回收。

       闭包是指有权访问另一个函数作用域中的变量的函数,闭包缺点是容易内存泄露。

垃圾回收原理:在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收; 如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

js继承与闭包(笔记)的更多相关文章

  1. 【学习笔记】深入理解js原型和闭包系列学习笔记——精华

    深入理解js原型和闭包笔记: 1.“一切皆是对象”,对象是属性的集合. 丨 函数也是对象,但是使用typeof时为什么函数返回function而 丨  不是object呢,js为何要对函数做这样的区分 ...

  2. 【学习笔记】深入理解js原型和闭包(6)——继承

    为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆.而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中 ...

  3. 【学习笔记】深入理解js原型和闭包(0)——目录

    文章转载:https://www.cnblogs.com/wangfupeng1988/p/4001284.html 说明: 本篇文章一共16篇章,外加两篇后补的和一篇自己后来添加的学习笔记,一共19 ...

  4. JavaScript面向对象(三)——继承与闭包、JS实现继承的三种方式

      前  言 JRedu 在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 . 成员属性.静态属性.原型属性与JS原型链).今天 ...

  5. 【学习笔记】深入理解js原型和闭包(7)——原型的灵活性

    在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有 ...

  6. 【学习笔记】深入理解js原型和闭包(5)——instanceof

    又介绍一个老朋友——instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...

  7. 【学习笔记】深入理解js原型和闭包(18)——补充:上下文环境和作用域的关系

    本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事.本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿. 再说明之前,咱们先用简单的语言来概括一下这两个的区别. 0 ...

  8. 【学习笔记】深入理解js原型和闭包(17)——补this

    本文对<深入理解js原型和闭包(10)——this>一篇进行补充,原文链接:https://www.cnblogs.com/lauzhishuai/p/10078307.html 原文中, ...

  9. 【学习笔记】深入理解js原型和闭包(16)——完结

    之前一共用15篇文章,把javascript的原型和闭包讲解了一下. 首先,javascript本来就“不容易学”.不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学javascrip ...

随机推荐

  1. oracle查看用户所占用的表空间

    select * from (select owner || '.' || tablespace_name name, sum(b) g from (select owner, t.segment_n ...

  2. WeMall微信商城签到插件Sign的主要源码

    WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...

  3. 3450: Tyvj1952 Easy

    3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 269  Solved: 198[Submit][Status] ...

  4. struts2知识点复习

    一. MVC Model 1:将所有的程序代码,都写到JSP页面中. Model 2:JSP(流程控制.数据显示) + JavaBean 改进的Model2:Servlet(流程控制) + Jsp(数 ...

  5. TensorBoard:Visualizing Learning 学习笔记

    为了更方便的理解.调试和优化TF程序,我们可以使用TensorBoard(可视化工具).可以使用TensorBoard查看graph,绘制图表执行过程中的定量指标.TensorBoard是完全可配置的 ...

  6. hdoj1072 Nightmare bfs

    题意:在一个地图里逃亡,2是起点,3是终点,1是路,0是墙,逃亡者携带一个炸弹,6分钟就会炸,要在6分钟前到达4可以重制时间,问是否能逃亡,若能则输出最小值 我的思路:bfs在5步内是否存在3,存在则 ...

  7. 用shell实现linux系统应用文件清理工具

    用shell实现linux系统文件清理工具 1:原始需求 在系统运维中,会产生大量应用备份文件.落地文件等,这些文件需要定时清理.一般来说,都是使用crontab 拉起一个脚本来清理.类似这样: 30 ...

  8. 一名合格的JAVA程序员需要点亮那些技能树?

    这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的. 尽管Struts2漏洞频出,但是由于政府.银行以及传统企业遗留项目 ...

  9. css动画特效与js动画特效(一)------2017-03-24

    1.用css做动画效果: 放鼠标才会发生 利用hover <head> <style> #aa{ background-color: red; width: 100px; he ...

  10. NumPy入门及基础

    1.1 NumPy 数组对象 NumPy中的ndarray是一个多维数组对象,该对象由两部分组成:  实际的数据;  描述这些数据的元数据. 大部分的数组操作仅仅修改元数据部分,而不改变底层的实际 ...