我正在阅读一些JavaScript工作,并且遇到了一段我发现有趣的代码。我做过一些阅读并遇到过:
Is using 'var' to declare variables optional?
这说明缺少var类型声明,因为将var放入冒泡的可变全局非全局状态。
示例:
var foo = bar // locally scoped
foo = bar // outer scope, can have global ramifications
我的问题是在将外部范围声明与匿名函数组合时,这是否可以接受,建议的处理方式是什么?是好的"惯例?这应该是本地范围的吗?为了我的目的,它在一个类中,所以我认为没有理由为什么它不是本地范围的。再说一遍,JS noob,所以寻找一些见解。
示例:
updateThing = (e) => {
this.state.items = e.target.value;
}
非常感谢,谢谢。
答案 0 :(得分:1)
声明没有类型声明的匿名函数
没有匿名函数声明(export default
除外)。您拥有的所有示例都是带有初始化程序的赋值或变量声明。
将外部作用域声明与匿名函数组合时,这是否可以接受,建议的处理方法是什么?是好的"约定?
不,这是一种不好的做法。不要这样做。永远不要分配你没有在任何地方声明的变量。
为了我的目的,它在一个班级里面
如果您指的是class
定义正文:赋值语法有experimental shortcut for property intialisations in the constructor。不要使用它,特别是如果你不知道它意味着什么。只需明确写出来:
class … {
constructor(…) {
…
this.updateThing = (e) => {
this.state.items = e.target.value;
};
}
…
}
这不是变量赋值,与声明完全无关。