函数本身的作用域
函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。
同样的,函数体内部声明的函数,作用域绑定函数体内部。
总之,函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域。
对象obj没有数组的push方法,使用该方法就会报错。
var obj = {
0: ‘a’,
1: ‘b’,
2: ‘c’,
length: 3
};
obj[0] // 'a'
obj[1] // 'b'
obj.length // 3
obj.push('d') // TypeError: obj.push is not a function
;var a = 1;
// ...
上面这种写法就可以避免与其他脚本合并时,排在前面的脚本最后一行语句没有分号,导致运行出错的问题。