function* fibs(num){
let a = 0;
let b = 0;
while(num>0){
yield a;
num--
[a,b] = [b,b+a]
}
}
console.log([...fibs(10)])
let num = 0
let obj = {
num: 1,
find() {
return this.num
}
}
console.log(obj.find())
let fun = obj.find
console.log(fun())
//打印出来的是1和undefined
let声明的变量不在window上
注:在ES5中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象。
但ES6规定,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性,但 let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。