JavaScriptにおけるprototype/constructorの理解


一、プロトタイプ(対象)(プロトタイプ)
javascriptが持つことができます.
1,書き換える
2,追加方法
3,継承の仕組み
 
prototype継承原理:
各方法の作成には、一例のオブジェクトfunctionName.prototypeがあります.この方法を使って作成したオブジェクトごとに、このprototypeは彼に与えられます.
各オブジェクトが一つのプロトタイプを共有しているからこそ、このプロトタイプを操作できます.
1,あなたの対象を彼に与えて相続の目的を達成します.次の文章を見てください.
2,このプロトタイプに方法を書き換えるか、方法を追加することができます.
 
1,書き換える
 :Array.prototype.push=function(){
	//execute your's function
}
2,追加方法
Array.prototype.newMethod=function(){
	//add new method for after use
}
3,継承する
//-------次の例で実現する.
 
4,prototypeの理解.
function F1(){
}

F1.prototype.run=function(){
	alert("execute run.f1 method");
}

var a1=new F1();
var a2=new F1();
if(a1.run()===a2.run());//  prototype      ,        prototype  
 
二番目 コントローラー:自分がどのように構成されているかを説明します.
var arrayObject=new Array();
arrayObject.constructor;//Array
Array.constructor;//Function
Object.constructor;//Function   Object.prototype null
Function.constructor;//Function(       )
  prototypeと操作ができます.
arrayObject.com nstrucotr.addmethod=function()のようにArayに方法を提供することができます.
 
prototypeとconstructorを使って、完全な継承パッケージを行います.
//          ,      
//     ,        object.construcotr      (function)
//     ,      suberObject     

//     
function Parent(){
	this.log=function(){
		document.writeln("this is parent log.....<br>");
	}
}
function Suber(){
	this.log=function(){
		document.writeln("this is suber log......<br>");
	}
}

var suber1=new Suber();
//       
document.writeln(suber1.constructor);
//           ,        .construcotr    prototype      ,          
document.writeln(suber1.constructor===Suber.prototype.constructor);
document.writeln("<br>--------------------------------------------<br>");


//    .....
Suber.prototype=new Parent();
var suber2=new Suber();
//        ,          , "   "  
document.writeln(suber2.constructor);
document.writeln("<br>--------------------------------------------<br>");


//  "   "  
Suber.prototype=new Parent();
Suber.prototype.constructor=Suber;
var suber3=new Suber();
document.writeln(suber3.constructor);
document.writeln("<br>--------------------------------------------<br>");


//    ,   "   ",      parent     
//                   
//  "   "  
Suber.prototype=new Parent();
Suber.superClass=Parent;//                  
Suber.prototype.constructor=Suber;
var suber4=new Suber();
document.writeln(suber4.constructor);
document.writeln("<br>--------------------------------------------<br>");
document.writeln(Suber.superClass);
 
//extjsの引き継ぎパッケージを参照することができます.
 
参考文献:http://hi.baidu.com/maxwin2008/blog/item/8da86102c1ceda034bfb51a3.html