作用域链&原型链
来源:互联网 发布:java调用go语言 编辑:程序博客网 时间:2024/05/19 01:31
作用域链:
作用域是针对变量的,比如我们创建了一个函数,函数里面又包含了一个函数,那么现在就有三个作用域:
全局作用域==>函数1作用域==>函数2作用域
作用域的特点就是,先在自己的变量范围中查找,如果找不到,就会沿着作用域往上找。
如:
var a = 1;function b(){ var a = 2; function c(){ var a = 3; console.log(a); } c();}b();
最后打印出来的是3,因为执行函数c()的时候它在自己的范围内找到了变量a所以就不会越上继续查找,如果在函数c()中没有找到则会继续向上找, 一直会找到全局变量a,这个查找的过程就叫作用域链。
不知道你有没有疑问,函数c为什么可以在函数b中查找变量a,因为函数c是在函数b中创建的,也就是说 函数c的作用域包括了函数b的作用域 ,当然也包括了全局作用域,但是函数b不能向函数c中查找变量,因为 作用域只会向上查找 。
原型链
是针对构造函数的,比如我先创建了一个函数,然后通过一个变量new了这个函数,那么这个被new出来的函数就会继承创建出来的那个函数的属性,然后如果我访问new出来的这个函数的某个属性,但是我并没有在这个new出来的函数中定义这个变量,那么它就会往上(向创建出它的函数中)查找,这个查找的过程就叫做原型链。
Object ==> 构造函数1 ==> 构造函数2
就和css中的继承一样,如果自身没有定义就会继承父元素的样式。
function a(){};a.prototype.name = "追梦子";var b = new a();console.log(b.name); //追梦子b.name = "sss"console.log(b.name); //sss
0 0
- 作用域链&原型链
- js作用域、原型链
- javascript, 原型链,javascript 原型链方法,原型链继承,原型链和作用域链
- 原型和原型链,作用域链区别
- Javascript 作用域 闭包 原型和原型链
- js:作用域链,原型链
- javascript作用域链和原型链
- JavaScript作用域链和原型链
- 作用域链和原型链
- 构造函数/原型/作用域链
- 原型链及作用域知识图解
- !!javascript 作用域链的原理和原型链
- 作用域链(scope chain)和原型链(prototype chain)
- 访问变量-作用域链 访问属性-原型链
- 作用域链(执行上下文) 原型链(对象)
- Javascript原型链,作用域链与new
- 简谈JS的原型链和作用域链
- 作用域链与原型链的区别与联系
- PHP 不同地图坐标系经纬度转换 GCj02 WGS84 BD-09
- netty 对象序列化传输示例
- C语言获取当前系统时间
- Kibana 可视化监控报警插件 KAAE 的介绍与使用
- JSP页面在被访问的时候的执行过程
- 作用域链&原型链
- JS中运算符i++与++i的详细分析
- CentOS 7下【zabbix-agent】
- linux环境安装CRF++及python接口
- hue3.9 集成 hive1.1.0
- Hadoop、storm和Spark的区别、比较
- jQuery.ajax 跨域请求webapi设置headers的解决方案
- Java直接调用Python
- Guava学习之cache