`

javascript 原型

 
阅读更多
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/
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics