function Foo(){ getName = function(){console.log(1)} return this; } Foo.getName = function(){console.log(2)} Foo.prototype.getName = function(){console.log(3)} var getName = function(){console.log(4)} function getName(){ console.log(5) } Foo.getName(); getName(); Foo().getName(); getName(); // console.log(new Foo(),Foo) new Foo().getName();//为什么是3? //new 关键字,创建一个实例对象,查找getName顺序: //先到自己的身上找-没有 //再到构造函数中找-没有 注意:构造函数中的getName没有使用this,无法共享这个方法。 //再到自己的原型上找-没有 //再到构造函数上的原型上去找->找到,打印3