javascript権威の手引きを読み返して、prototypeに対する理解
907 ワード
今日はjavascript権威の手引きを読み返しました.ずっと困っていた問題に対して新しい啓発がありました.もとはずっと困惑していました.各種類(関数の対象)の原型は多くの種類の実例でメモリの独立を実現すれば、お互いに整理することができません.
1.javascriptの継承は、照会の際に行われる.つまり、dog 1.iを介してDug属性を読み込むとき、dogオブジェクトで該当属性が確認されない場合、JavascriptはDocg.prototypeの中にその属性があるかどうかを再確認する.これが原形の継承機構である.したがって、javascriptの継承はプロトタイプの対象から新たなオブジェクトにコピーされるものではない.
2.Dugの各例はいずれも同じプロトタイプのDocg.prototypeを指します.つまりdog 1、dog 2はDug.prototpeオブジェクトを指します.属性を書くとjavascriptはプロトタイプを使用しません.直接オブジェクトに属性を作成し、プロトタイプの中に同じ属性を隠しています.再読み取りする時は現在のオブジェクトの中に読み込むだけで見つけたら元のプロトタイプに戻らないです.したがって、各インスタンスのオブジェクトは互いに閉じない.
パラメータ文献:JavaScript権威ガイド.pdf 8章第四小節
function Dog(){
}
Dog.prototype.i=0;
Dog.prototype.k=1;
合格する var dog1 = new Dog();
var dog2 = new Dog();
新たに生成されたオブジェクトはどのように原型を継承しますか?Docg.prototypeは各Dugの実例dog 1、dog 2…いずれもDocg.prototypeのコピーがありますか?答えは決まっているはずです.1.javascriptの継承は、照会の際に行われる.つまり、dog 1.iを介してDug属性を読み込むとき、dogオブジェクトで該当属性が確認されない場合、JavascriptはDocg.prototypeの中にその属性があるかどうかを再確認する.これが原形の継承機構である.したがって、javascriptの継承はプロトタイプの対象から新たなオブジェクトにコピーされるものではない.
2.Dugの各例はいずれも同じプロトタイプのDocg.prototypeを指します.つまりdog 1、dog 2はDug.prototpeオブジェクトを指します.属性を書くとjavascriptはプロトタイプを使用しません.直接オブジェクトに属性を作成し、プロトタイプの中に同じ属性を隠しています.再読み取りする時は現在のオブジェクトの中に読み込むだけで見つけたら元のプロトタイプに戻らないです.したがって、各インスタンスのオブジェクトは互いに閉じない.
パラメータ文献:JavaScript権威ガイド.pdf 8章第四小節