JS prototypeの誤認についての浅談


最近はjsのプロトタイプを研究してみましたが、ネット上ではプロトタイプに対する誤解が多く、以下は私の心得です.
1.prototypeプロトタイプは、インスタンスに基づくものではなく、タイプに基づいています.

var newLine = "</br>"

function App(){
	this.appName = "  ";
}
App.prototype.type = "  ";

var a1 = new App();
var a2 = new App();

document.write(a1.type+newLine);//  
document.write(a2.type+newLine);//  

App.prototype.type = "  ";

document.write(newLine);

document.write(a1.type+newLine);//  
document.write(a2.type+newLine);//  

//       type            。
//   type   ,     a1 a2   ,    ,         ,       type  ,       type       

でも、このように書いたら、変な場面があります.

var newLine = "</br>"

function App(){
	this.appName = "  ";
}
App.prototype.type = "  ";

var a1 = new App();
a1.type = "  1";
var a2 = new App();
a1.type = "  2";

document.write(a1.type+newLine);//  1
document.write(a2.type+newLine);//  2

//         ,        prototype  ,        ,          type     。
//      ,   type     ,       ,      ,        , type       
//        ,       ,        ,              ,          
プロトタイプとタイプについては、すべてのインスタンスのプロトタイプの属性が同一のオブジェクトに対して設定されていますが、変更された場合には、インスタンスは自分の内部に新たな変数を作成し、各インスタンスにプロトタイプの錯覚を与えます.
だから


var newLine = "</br>"

function App(){
	this.appName = "  ";
}
App.prototype.type = "  ";

var a1 = new App();
a1.type = "  1";
var a2 = new App();
a1.type = "  2";

document.write(a1.type+newLine);//  1
document.write(a2.type+newLine);//  2

delete a1.type ;//        type            
document.write(a1.type+newLine);//               

2.オブジェクトの構造関数はconstructorによって指定されていません.

<script language="javascript" type="text/javascript">
newLine = "</br>"

function App(){
	this.appName = "  ";
	alert("  App");
}

function FApp(){
}

var a = new App(); //  App
alert(a.hasOwnProperty("constructor")); //false   App       constructor   
alert(a.constructor);//          constructor,      ,   constructor              

//         
App.prototype = new FApp();
alert(App.prototype.constructor);//    FApp(),           FApp  , FApp   constructor FApp()
//       App         App()

var a2 = new App(); //  App()


</script>
そのconstructorはいったい何のために使われていますか?正常な原型チェーンを維持するために、また構造関数を知りたい時に調べられます.(これはネットで見つけた理解です.)
初めはjsに接触して、誤りがあったら指摘してください!