JavaScriptにおけるprototype/constructorの理解
3435 ワード
一、プロトタイプ(対象)(プロトタイプ)
javascriptが持つことができます.
1,書き換える
2,追加方法
3,継承の仕組み
prototype継承原理:
各方法の作成には、一例のオブジェクトfunctionName.prototypeがあります.この方法を使って作成したオブジェクトごとに、このprototypeは彼に与えられます.
各オブジェクトが一つのプロトタイプを共有しているからこそ、このプロトタイプを操作できます.
1,あなたの対象を彼に与えて相続の目的を達成します.次の文章を見てください.
2,このプロトタイプに方法を書き換えるか、方法を追加することができます.
1,書き換える
//-------次の例で実現する.
4,prototypeの理解.
二番目 コントローラー:自分がどのように構成されているかを説明します.
arrayObject.com nstrucotr.addmethod=function()のようにArayに方法を提供することができます.
prototypeとconstructorを使って、完全な継承パッケージを行います.
//extjsの引き継ぎパッケージを参照することができます.
参考文献:http://hi.baidu.com/maxwin2008/blog/item/8da86102c1ceda034bfb51a3.html
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