1,constructor是对象实例的属性,而不是函数的属性。
2,prototype是函数的属性,而不是实例的属性。prototype是对象。
每个函数都有一个原型,这个原型是个对象,并且对象里面包含一个constructor属性。
3,每个实例对象都有一个constructor属性,并且指向构造器。而且每个new出来的实例都是某个原型constructor的实例。
4,javascript中对象是如何找到方法的,先在自己对象上找,实例如果没有,则在自己的原型对象上去找,如果还没有
回溯原型链,在父原型中找。一直递归到Object对象。如果还没有找到,那就会报错。找属性也是同理
function Gizmo(id){
this.id = id ;
this.ask = function()
{
alert("gizmo--ask:"+this.id);
}
function privateMethod()
{
return "gizmo--privateMethod";
}
privateMethod2 = function ()
{
return "gizmo--privateMethod2";
}
}
Gizmo.prototype.toString = function ()
{
return "gizmo--toString:"+this.id;
};
Gizmo.prototype.id="gizmo3";
function Hoozit(id)
{
this.id = id;
}
Hoozit.prototype = new Gizmo("Gizmo1");
var g = new Gizmo("Gizmo2");
var h = new Hoozit("hoozit");
/* 以下例子说明方法的调用顺序以及属性的顺序
h.ask = function()
{
alert("h.ask");
}
h.ask();
delete h.ask;
h.ask();
delete h.id;
h.ask();
delete Hoozit.prototype.id ;
h.ask();
*/
http://www.cnblogs.com/cloudgamer/