JS函数本身的作用域实例分析
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要介绍了JS函数本身的作用域,结合实例形式分析了JS函数作用域相关原理、操作技巧与使用注意事项,需要的朋友可以参考下
本文实例讲述了JS函数本身的作用域。分享给大家供大家参考,具体如下
函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在作用域无关。
var a = 1 var x = function() { console.log(a) } function f() { var a = 2 x() } f()
上面代码中,函数x是在函数f的外部声明的,所以它的作用域绑定外层,内部变量a不会到函数f体内取值,所以输出1,而不是2。
,函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域
var x = function () { console.log(a); }; function y(f) { var a = 2; f(); } y(x) // ReferenceError: a is not defined
上面代码将函数x作为参数,传入函数y。x是在函数y体外声明的,作用域绑定外层,找不到函数y的内部变量a,导致报错。
同样的函数本内部声明的函数,作用域绑定在函数体内部
function foo() { var x = 1; function bar () { console.log(x) } return bar } var x = 2 var f = foo() f() // 1
箭头函数的作用域,是和父级上下文绑定在一起的
var obj = { id: 1, show: () => { console.log(this.id) } } obj.show() // undefined
上面代码show函数是一个箭头函数,其this指向父级,而父级是一个顶级对象,window,window.id没有定义,所以返回undefined
var obj = { id: 2, show: function() { return () => { console.log(this.id) } } } obj.show()() // 2
上面代码中,箭头函数定义在show函数内部,其父级作用域为show函数的作用域,show函数中this指向调用show函数的对象,即obj,obj中有id属性,且值为2,所以输出2
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具测试上述代码运行效果。
更多关于JavaScript相关内容可查看本站专题《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南