那个obj的题目应该是考察你对this的掌握:
function foo() {
console.log(this.a)
}
var obj = {
a: 2,
foo: foo
}
var bar = obj.foo // 函数别名!
var a = 'global' // a 是全局对象的属性
bar() // "global"
当将对象里的函数赋值给一个变量,那么被绑定的函数会应用默认绑定,也就是把this绑定到全局对象或undefined上。此处如果不赋值给bar,直接执行obj.foo(),那么就会输出2了