source code:
<html> <script> var x = 10; foo={ x:20, bar: function() { var x = 30; return this.x; } } console.log( foo.bar(), (foo.bar)(), (foo.bar = foo.bar)(), (foo.bar, foo.bar)() ); // 20 20 10 10 </script> </html>
第一个foo.bar(): 进入函数体执行时this 指向foo对象,因此this.x为20