原型和闭包的理解笔记

对原型的理解

1 原型链
JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依此层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾

要理解原型链又得先从instanceof说起。
这里写图片描述
为什么 f1 instanceof Object 为true呢?如下图所示:
这里写图片描述

其实instanceof表示的就是原型链的结构或者说是继承关系
2 继承属性
Js中继承其实就是通过原型链来体现的
这里写图片描述
f1.b是怎么来的呢?
——从Foo.prototype得来,当访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着proto这条链向上找,这就是原型链。

a.prototype 包含了2个属性,一个是constructor ,另外一个是proto

闭包
概念:闭包我的理解就是就是能够读取其他函数内部变量的函数。
有两种存在形式:函数作为返回值时 和 函数作为参数传递时
要理解闭包,首先理解javascript特殊的变量作用域,变量的作用于无非就是两种:全局变量,局部变量。而javascript语言的特殊处就是函数内部可以读取全局变量。
1. 如何从外部读取局部变量?
正常情况下,这是不能读取到的,只有通过闭包方法才能读取到。因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
2 闭包的用途:闭包可以读取函数内部的变量,可以让变量的值始终保持在内存中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值