《深入理解JavaScript闭包和原型》笔记
By XFE-堪玉
以下知识来源于对王福朋所写《深入理解javascript原型和闭包》的理解和整理
一切都是对象[引用类型],对象都是通过函数创建的[Funcion类型]
对象是属性的集合,因此属性中的方法其实也是属性的一种
函数也是一种对象,因此也是属性的集合,可以对其进行自定义属性
每个函数都有一个属性prototype,属性值为一个对象——原型对象
每个对象都有一个隐式__proto__属性,指向创建该对象的函数的prototype
原型对象默认只有一个constructor的属性,指向函数本身
Function内置对象的__proto__指向了自身的Prototype,被自身创建
自定义或内置函数的prototype本质上和var obj={}一样的Object实例,都是被Object创建,因此根据语言的继承特性,默认原型都会包含一个内部指针,指向Object.prototype,因此Object.prototype里的所有属性和方法被理所应当的继承了下来
执行上下文激活相当于代码的"前期准备工作",是在被调用时创建的,其数据内容包括:
- 全局代码的上下文环境
- 变量、函数表达式 ——变量声明(默认赋值为undefined)
- this ——赋值
- 函数声明 ——赋值
- 函数体的上下文环境
- 参数 ——赋值
- arguments ——赋值
- 自由变量 ——赋值
- 全局代码的上下文环境
函数每被调用一次,都会产生一个新的执行上下文环境,执行完后上下文环境即被销毁
作用域是在函数创建时就产生的,同一个作用域下可能同时存在不同的执行上下文
在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了
处于活动状态的执行上下文环境只有一个,其实这是一个压栈出栈的过程——执行上下文栈
在当前作用域中使用,却没在当前作用域中创建的变量为自由变量
对于自由变量的取值,要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”
转载于:https://www.cnblogs.com/xfe2017/p/7737936.html
《深入理解JavaScript闭包和原型》笔记相关推荐
- 《信贷的逻辑与常识》笔记
序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...
- AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...
- 人工智能入门算法逻辑回归学习笔记
逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...
- 【逻辑回归学习笔记】
算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...
- 逻辑回归函数学习笔记
继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- LVM逻辑卷分区笔记
磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...
- 适合理工直男的钟平老师逻辑英语学习笔记
一切的一切都只是套路! --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...
- 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象
文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...
- 线性回归、逻辑回归学习笔记
学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...
最新文章
- 新年总结:2018年,是我妈最快乐的一年
- OpenCv 005---图像像素的算术操作
- Linux监听进程是否存在,并加入定时任务
- oracle里返回值吗,Oracle有返回值的存储过程 | 学步园
- 第四章 PX4-Pixhawk-MPU6000传感器驱动解析
- 结构光三维重建Projector-Camera Calibration投影仪相机标定
- JSON解析---初识
- 夏普linux掌上电脑,夏普展示Ubuntu系统NetWalker PC-Z1[图文]
- 华为Mate30系列诠释真旗舰:9月26日在国内正式发布
- HDU3585 Information Disturbing 树形dp+二分
- 基于汇编与c语言的单片机原理及应用答案,基于汇编与C语言的单片机原理及应用...
- Java connot reduce_hadoop错误:org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast t...
- 2021年美国大学生数学建模竞赛助力
- 计算机如何增加c盘容量,怎么给c盘增加空间 c盘增加空间步骤【图文】
- 2022-2027年中国活性染料行业市场深度分析及投资战略规划报告
- 2019亚信科技java实习面试笔试经验分享(已成功入职)
- php加入语音播报功能_PHP实现语音播报功能
- 区分A~E类IP地址
- 关于AWS云主机EC2的一些常用操作
- matlab 求矩阵秩,求矩阵秩的两种方法及MATLAB的应用
热门文章
- java mysql存储图片_Java存储图片到Mysql
- brew 安装软件能指定文件夹吗_Mac安装homebrew安装到指定目录
- java 表格添加监听_关于Oracle用java实时监听oracle对表的DML操作【技术贴】
- 让mysql timeStamp类型支持默认值0000-00-00 00:00:00
- 至商3000服务器信息,至商3000软件
- lock.ReadWriteLock使用方法
- 【渝粤教育】国家开放大学2018年秋季 8181-22T (1)老年保健按摩 参考试题
- 【渝粤教育】国家开放大学2018年秋季 0077-22T古代汉语专题 参考试题
- 【渝粤教育】电大中专跨境电子商务理论与实务 (8)作业 题库
- 【渝粤教育】广东开放大学 网络编程 形成性考核 (39)