【JavaScript】js中this关键字及let与var小对比
来源:互联网 发布:电脑微信群发软件 编辑:程序博客网 时间:2024/04/26 08:05
JavaScript的this一直比较模糊。不废话,下结论贴代码,再讨论!
结论:函数执行时,this最终指向直接调用this所在函数的对象
代码1:
let age = 2; let kitty = { age:1, grow:function () { console.log(this.age); //1 } }; kitty.grow();此时grow()被kitty直接调用,所以this指向kitty,age为1
代码2:
let age = 2; let kitty = { age:1, grow:function () { setTimeout(function () { console.log(this.age);//undefined },100); } }; kitty.grow();此时grow()也被kitty直接调用,但是this所在函数为setTimeout内的function回调函数,并没有对象直接调用此方法(也就是obj.func()这种形式),所以this指向全局window。但此时却不打印出2,而是undefined,这就是要讲得第二点:let与var的区别,请看代码3
代码3:
var age = 2; var kitty = { age:1, grow:function () { setTimeout(function () { console.log(this.age); },100); } }; kitty.grow();此时打印2。let与var的一般区别大家都知道:let可以说赋予了js块级作用域。而在这里,let还有个小特性,就是在全局(也就是window)下,用let声明的变量不再属于window,所以代码2会打印undefined
阅读全文
0 0
- 【JavaScript】js中this关键字及let与var小对比
- JavaScript ES6中const、let与var的对比详解
- JavaScript中的let与var
- JavaScript中的let与var
- 【JavaScript】let与var的区别及变量、函数提升
- javascript中var与let与const的区别
- JAVAScript中的作用域与new,this,var关键字
- JS中Var关键字
- JavaScript的ES6中var、let、const
- JavaScript中const,var,let区别
- javascript中const/let/var区别浅析
- JavaScript中const, var, let的区别
- javaScript中var、let、const的区别
- JavaScript中var、let、const区别。
- JS/JavaScript中 this 关键字对象详解
- js基础之var与let
- js中const,var,let区别
- js中const,var,let区别
- .html文件是白色的,而不是浏览器的图标
- 基于CentOS搭建个人网盘
- random
- 玩转Kotlin--彻底弄懂Lambda和高阶函数
- 疫情控制 40
- 【JavaScript】js中this关键字及let与var小对比
- Assistant de peinture
- [luogu3008]/[USACO 11JAN]道路和飞机Roads and Planes
- –定义一个圆类(Circle),其所在的包为bzu.info.software;定义一个圆柱类Cylinder,其所在的包为bzu.info.com;定义一个主类A,其所在的包也为bzu.info.
- mapreduce学习笔记-二次排序(自定义数据类型,自定义分区分组)
- 深度学习深理解(三)-浅层神经网络
- 2017.10.16
- Jenkins基础入门-17-什么是Blue Ocean
- Linux系统知识小结(四)