By XFE-堪玉


以下知识来源于对王福朋所写《深入理解javascript原型和闭包》的理解和整理

  1. 一切都是对象[引用类型],对象都是通过函数创建的[Funcion类型]

  2. 对象是属性的集合,因此属性中的方法其实也是属性的一种

  3. 函数也是一种对象,因此也是属性的集合,可以对其进行自定义属性

  4. 每个函数都有一个属性prototype,属性值为一个对象——原型对象

  5. 每个对象都有一个隐式__proto__属性,指向创建该对象的函数的prototype

  6. 原型对象默认只有一个constructor的属性,指向函数本身

  7. Function内置对象的__proto__指向了自身的Prototype,被自身创建

  8. 自定义或内置函数的prototype本质上和var obj={}一样的Object实例,都是被Object创建,因此根据语言的继承特性,默认原型都会包含一个内部指针,指向Object.prototype,因此Object.prototype里的所有属性和方法被理所应当的继承了下来

  9. 执行上下文激活相当于代码的"前期准备工作",是在被调用时创建的,其数据内容包括:

    • 全局代码的上下文环境

      1. 变量、函数表达式 ——变量声明(默认赋值为undefined)
      2. this ——赋值
      3. 函数声明 ——赋值
    • 函数体的上下文环境
      1. 参数 ——赋值
      2. arguments ——赋值
      3. 自由变量 ——赋值
  10. 函数每被调用一次,都会产生一个新的执行上下文环境,执行完后上下文环境即被销毁

  11. 作用域是在函数创建时就产生的,同一个作用域下可能同时存在不同的执行上下文

  12. 在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了

  13. 处于活动状态的执行上下文环境只有一个,其实这是一个压栈出栈的过程——执行上下文栈

  14. 在当前作用域中使用,却没在当前作用域中创建的变量为自由变量

  15. 对于自由变量的取值,要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”

《深入理解JavaScript闭包和原型》笔记的更多相关文章

  1. HTML+CSS笔记 CSS笔记集合

    HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...

  2. CSS笔记--选择器

    CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...

  3. HTML+CSS笔记 CSS中级 一些小技巧

    水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...

  4. HTML+CSS笔记 CSS中级 颜色&长度值

    颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...

  5. HTML+CSS笔记 CSS中级 缩写入门

    盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...

  6. HTML+CSS笔记 CSS进阶再续

    CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...

  7. HTML+CSS笔记 CSS进阶续集

    元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...

  8. HTML+CSS笔记 CSS进阶

    文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...

  9. HTML+CSS笔记 CSS入门续集

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...

  10. HTML+CSS笔记 CSS入门

    简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...

随机推荐

  1. Awesome Flask Awesome

    A curated list of awesome Flask resources and plugins Awesome Flask Framework Admin interface Authen ...

  2. OTL之Oracle开发总结《转》

    OTL之Oracle开发总结---转   关 于OTL,网上介绍的也不少,但看来看去也只是官方的那些文档.OTL很好用,结合官方提供的一些例子,多多尝试才能领悟.经过一个月左右的项目开发,对 OTL也 ...

  3. vue-touchjs

    支持vue2.0的面向指令的touch指令,基于touchjs(原百度实现的移动端手势库) vue-touchjs支持三种stopPropagation的方式: 1 .stop修饰符 2  事件han ...

  4. Ubuntu 无法登录 coursera 看视频

    修改 host 文件 sudo vim /etc/hosts 将下面的内容添加至末尾 52.84.246.72 d3c33hcgiwev3.cloudfront.net

  5. 用Go语言异常机制模拟TryCatch异常捕捉

    有的同学看到Go和TryCatch一起出现,心里可能会说,难道Go语言升级了,加入了try...catch语句.哈哈,其实Go语言从创建之初就没打算加入try...catch语句,因为创建Go的那帮大 ...

  6. [翻译] 正式宣布 .NET 5

    原文: Introducing .NET 5 今天,我们宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 .这将是 .NET 系列的下一个重要版本. 将来只会有一个 .NET ,您 ...

  7. 删除node_modul模块

    npm安装rimraf ,npm版本号要是低于5.x.x 具体不记得了,不然就安装不了这个工具 npm install rimraf -g 然后: rimraf node_modules 在这里学到的 ...

  8. uoj#274. 【清华集训2016】温暖会指引我们前行(LCT)

    传送门 不难发现肯定是在温度的最大生成树上走是最优的 于是用\(LCT\)维护最大生成树,每一次加边时如果已经连通,就判断一下路径上的最小温度是否小于当前温度,是的话就断掉那条边,加入新边 //min ...

  9. 第五章 “我要点爆”微信小程序云开发实例之从云端获取数据制作首页

    下面我们来实现从云端获取数据,完成首页世界页面index的制作,首页分为4个数据列表导航页面,页面具体内容如下: 推荐:为用户推荐最新的点爆信息,它包含文本点爆内容和语音点爆内容. 文爆:筛选出文字点 ...

  10. Java之多线程同步基础

    java学习的道路上呢总有一些麻烦的东西需要花费一些时间去理解,比如个人认为不好搞的多线程. 线程是并列运行的 因为是并列运行,所以有时候会发生资源抢占,从而导致参数变化; 比如酱紫 package ...