扫码关注官方订阅号
问题:_data是在括号内声明的,为什么在括号外还是可以打印他的值呢?难道这就是传说中的闭包?!
欢迎选择我的课程,让我们一起见证您的进步~~
这是只是因为变量提升了,实际这段代码是这样的:
<script> function Template() {} Template.prototype = { getData: function() { var _data; if (100) { _data = 'this is data'; } console.log(_data); } } var temp = new Template(); temp.getData(); </script>
所以当然能打印出data的值。关于变量提升,你可以看看这篇文章:JavaScript变量提升
js没有块级作用域。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这是只是因为变量提升了,实际这段代码是这样的:
所以当然能打印出data的值。
关于变量提升,你可以看看这篇文章:
JavaScript变量提升
js没有块级作用域。