function Foo(){
getName=function(){alert(1);}
console.log(this)
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 这里是不是因为构造函数Foo中的getName方法没有this关键字,所以就不是1,而是直接采用外部的方法,意思就是Foo对象调用getName的时候弹出2??
getName(); //4
Foo().getName(); //1 这里为什么是1呢?是因为Foo返回了this对象,这里的this对象是window,所以这句话的意思不是应该等同window.getName()??那应该是4啊为什么是1
getName(); // 1 这里变成1 是不是因为3的那一步Foo返回了this对象,所以改变了全局函数getName??所以返回1
new Foo.getName();//2
new Foo().getName(); //3
new new Foo().getName(); //3
5-7不是很理解,解释不出原因。
5是不是new关键字其实没起什么作用呢?都只是调用一个方法而已?
沧海一幻觉
相关分类