//var People={name:"xiong",年齢:15 };
//var person=function(user,age){
// this.name=user;
// this.age=age; =function( ){alert("私は " this.name "n" this.age);}
//}
//var 会長=function(name,salary){
// 人物.call( this,name);
// }
//var Bill=新しい人物("Bill",15)
//var Hu=新主席("胡錦濤"); 🎜>/ /person.prototype.eat=function(){
//alert("私は食べています")
// }
//Bill.eat(); Person(name ) // 基本クラスのコンストラクター
{
this.name = name;
};
Person.prototype.SayHello = function() // のプロトタイプに追加します。基本クラス コンストラクター Method
{
alert("こんにちは、" this.name);
function Employee(name,給与) //サブクラス コンストラクター
{
person.call(this, name); // 基本クラスのコンストラクターを呼び出します
関数 Xiong(name,age); > Employee.call(this,name);
}
Employee.prototype = new Person(); // サブクラスのプロトタイプとして基本クラスのオブジェクトを作成します。興味深い
Xiong.prototype=new Employee();
Employee.prototype.ShowMeTheMoney = function() // コンストラクターのプロトタイプをサブクラスに追加し、メソッドを追加します
{
alert( this.name " $" this.salary);
var
var BillGates = new Person("Bill Gates") // 基本クラス Person
var の BillGates オブジェクトを作成します。 SteveJobs = new Employee(" Steve Jobs", 1234) // サブクラス Employee の SteveJobs オブジェクトを作成します
var hiakuotiankong=new Xiong("Broad Sky"); var benbenxiong=new Xiong("Stupid Bear"); ;
// BillGates.SayHello(); // オブジェクトを通じてプロトタイプ メソッドを直接呼び出す
// hiakuotiankong.SayHello() // サブクラス オブジェクトを通じて基本クラスのプロトタイプ メソッドを直接呼び出す注意してください!
benbenxiong.SayHello=function(){ //プロトタイプの SayHello メソッドを非表示にする
alter("haha,I'm" this.name);
benbenxiong.SayHello(); >// SteveJobs.ShowMeTheMoney(); // サブクラス オブジェクトを通じてサブクラスのプロトタイプ メソッドを直接呼び出します
// alter(BillGates.SayHello == SteveJobs.SayHello); // 表示: true、プロトタイプ メソッドであることを示します共有
Xiong.prototype.Goodbye=function(){
alert(this.name "Bye-bye");
benbenxiong.Goodbye();
JavaScript では、プロトタイプは、オブジェクトがその富を分かち合うことを可能にするだけでなく、プロトタイプにはそのルーツや祖先をたどる
性質もあり、それによって私たちの祖先の遺産を世代から世代へと受け継ぐことができます。オブジェクトから属性を読み取るとき、またはメソッドを呼び出すとき、オブジェクト自体にそのような属性やメソッドが
なく、プロトタイプに属性やメソッドがない場合は、関連付けられたプロトタイプ オブジェクト内でそれを検索します。再度そこに移動します。プロトタイプに関連する先行プロトタイプは、見つかるかトレース プロセスが終了するまでそこで検索されます。
JavaScript では、オブジェクトのプロパティとメソッドのトレース メカニズムは、いわゆるプロトタイプ チェーンを通じて実装されます。新しい
演算子を使用してオブジェクトを構築すると、コンストラクターのプロトタイプ オブジェクトも新しく作成されたオブジェクトに割り当てられ、オブジェクトの組み込みプロトタイプ
オブジェクトになります。オブジェクトの組み込みプロトタイプ オブジェクトは外部からは見えないようにする必要がありますが、一部のブラウザ (Firefox など) ではこの
組み込みプロトタイプ オブジェクトにアクセスできますが、これはお勧めできません。組み込みプロトタイプ オブジェクト自体もオブジェクトであり、独自の関連付けられたプロトタイプ オブジェクトを持っているため、
いわゆるプロトタイプ チェーンを形成します。
プロトタイプ チェーンの最後にあるのは、Object コンストラクターのプロトタイプ プロパティによって指定されるプロトタイプ オブジェクトです。このプロトタイプ オブジェクト
は、すべてのオブジェクトの最も古い祖先であり、すべてのオブジェクトが本質的に持つべき toString などのメソッドを実装します。 Function、Boolean、String、Date、RegExp プロトタイプなどの他の組み込み
コンストラクターはすべてこの祖先
から継承されますが、それぞれ独自のプロパティとメソッドを定義しているため、子孫はそれらの特性を示しました。それぞれの氏族。