<script>
function Foo() {
getName = function() {
alert(1);
}
return this;
}
Foo.getName = function() {
alert(2);
}
Foo.prototype.getName = function() {
alert(3);
}
var getName = function() {
alert(4);
}
function getName() {
alert(5);
}
Foo.getName(); // 2
getName(); // 4
Foo().getName(); // 1
getName(); // 1
new Foo().getName(); // 3
</script>
.Foo().getName(); // 1**
因为Foo打了小括号,所以就是调用Foo函数
并且给全局变量getName重新赋值,所以下面输出1