这个问题在这里已有答案:
世界上如何输出“未定义”而不是“数字”?
<script>
var foo = {
bar: function(){ return this.baz; },
baz: 1
}
console.log(typeof (f = foo.bar)());
</script>
注意:代码完全正确,而不是拼写错误。我的意思是(f = foo.bar)()这里只是一个有效的代码。
因为在执行时,上下文是“窗口”,所以在窗口对象上没有声明变量“baz”。