有谁能解释我..
为什么baz没有a宣布哪个var没有成为全球variable?
const foo = {
bar(baz) {
if (!baz)
baz = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
因为它被声明为函数参数1:
const foo = {
bar(baz) {
// ^-------- here
if (!baz)
baz = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
(bar是使用ES2015 方法定义语法声明的函数.)
如果它不是参数,例如:
const foo = {
bar() {
// ^----------------- no baz
if (!baz)
baz = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
...然后当foo.bar()被调用时,如果baz没有被定义,它将是一个ReferenceError(因为隐含全局 2的恐怖仅适用于分配未声明的符号,而不是从它们读取).
1我们经常松散地称这些"论点",但"论证"在技术上是在给定的呼叫中传递的实际值; 有关区别,请参阅MDN和Wikipedia.
2这是我贫血的小博客上的帖子.
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |