ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルにおけるオブジェクトの作成と継承の例の解釈

JavaScript_javascript スキルにおけるオブジェクトの作成と継承の例の解釈

WBOY
WBOYオリジナル
2016-05-16 17:00:25930ブラウズ

オブジェクトの作成:

関数オブジェクトが作成されると、関数コンストラクターによって生成された関数オブジェクトは次のようなコードを実行します:

コードをコピー コードは次のとおりです:

this.prototype={constructor:this};

関数 F を仮定します
F は、新しいメソッドを使用するオブジェクト オブジェクトのコンストラクターがこの F.prototype.constructor に設定されている場合
オブジェクトを作成する前に関数が関数のプロトタイプを変更すると、作成されたオブジェクトのコンストラクター属性に影響します

例:
コードをコピー コードは次のとおりです:

function F(){} ;
F.prototype={constructor: '1111'};
var o=new F();//o.constructor==='1111' true

の原理継承:

JavaScript の継承 プロトタイプチェーンを使用する仕組みで、各関数インスタンスはコンストラクターのプロトタイプ属性で定義されたデータを共有します。あるクラスが別のクラスを継承するには、親関数インスタンスが次のようになっている必要があります。子関数のプロトタイプ属性に割り当てられます。新しいインスタンス オブジェクトが作成されるたびに、オブジェクトのプライベート プロパティ __proto__ がコンストラクターのプロトタイプに自動的に接続されます。

instanceof は、インスタンス オブジェクトのプライベート プロトタイプ属性チェーンを検索して、それが指定されたオブジェクトのインスタンスであるかどうかを判断します

具体的な例:
コードをコピー コードは次のとおりです:

//instanceof は
関数 Myinstanceof(obj,type)
{ var proto=obj.__proto__;
while(proto)
{
if(proto ===type.prototype)break;
proto=proto.__proto__; >return proto!=null;
}


function View(){}
function TreeView(){}
TreeView.prototype=new View();//TreeView .prototype.__proto__=TreeView.prototype 自動補完
TreeView.prototype.constructor=TreeView;//修正コンストラクター
var view=new TreeView();//view.__proto__=TreeView.prototype 自動補完
alert(viewinstanceofView); //true view.__proto__.__proto__ が見つかると、
alert(viewinstanceofTreeView) //true が見つかります。 view.__proto__ が見つかると、
alert(Myinstanceof(view) ,View)); //true
アラート(Myinstanceof(view,TreeView)) //true

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。