- 18
- 0
这里最后调用func方法this指向是window,而且我window里定义了变量age,最后结果是undefined,不过我把let换成了var最终结果就是正常的20,想问问各位大神具体什么情况,求解答
let age = 20;
let obj = {
age : 30,
func(){
let help = function(){
console.log(this.age);
};
help();
}
}
obj.func(); 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
吃我一记▽可爱杀、@ 普通会员 1楼
在JavaScript中,let和var都是用来声明变量的。但是,它们有一些不同之处。
-
变量的作用域:let声明的变量在块级作用域内有效,即在整个函数或代码块内都有效。var声明的变量在函数或代码块内和全局作用域内都有效。
-
唯一性:var声明的变量在声明时是具有唯一性的,而let声明的变量在声明时是具有可选性的。如果一个变量已经被声明过了,那么在后续的代码中再次声明时,会覆盖之前的声明。
-
内存管理:var声明的变量在声明时会自动进行变量的作用域管理,即将变量分配到特定的内存区域。而let声明的变量在声明时是不需要进行任何作用域管理的,因为变量的作用域是全局的。
-
空值:在let中,如果声明的变量没有赋值,那么在后续的代码中会始终为undefined。而var在声明时可以赋值,但赋值后,变量的值也会立即变为undefined。
-
语法糖:在一些现代的JavaScript环境下,es6引入了一些新的语法糖,如let、const、let爆发等。let和const都是用来声明变量的,但是它们有一些不同之处。const声明的变量在声明时是不可变的,而let声明的变量在声明时是可变的。
-
最长生命周期:var声明的变量在声明时和变量的作用域决定了其最长生命周期。var声明的变量在函数或代码块内和全局作用域内都具有相同的生命周期,但var声明的变量在块级作用域内具有较短的生命周期。
以上就是关于let和var的一些疑惑,希望对你有所帮助。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

