JavaScript オブジェクトの作成と継承の原則の例 解剖学_基礎知識

WBOY
リリース: 2016-05-16 17:41:15
オリジナル
989 人が閲覧しました
オブジェクトの作成:
関数オブジェクトが作成されると、関数コンストラクターによって生成された関数オブジェクトは次のようなコードを実行します:
Copyコード コードは次のとおりです:

this.prototype={constructor:this};

関数 F を仮定します。
F が新しいメソッドを使用してオブジェクトを構築するとき、オブジェクトのコンストラクターはこの F.prototype.constructor に設定されます。
関数がオブジェクトを作成する前に関数のプロトタイプを変更すると、作成されたオブジェクトのコンストラクター属性
例:
コードをコピー コードは次のとおりです:

関数 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(view instanceof View) ; // true は view.__proto__ を検出します。
alert(view instanceof TreeView) は __proto__ が検出された場合に検出されます。 // true は view.__proto__ が検出された場合に検出されます。
alert(Myinstanceof(view,View)) / /true
alert(Myinstanceof(view, TreeView)); //true


上記のカスタマイズされた Myinstanceof は、IE カーネル インスタンス ストレージ プロトタイプではないため、自分で実装したものです。 __proto__、Myinstanceofは通らない、その他のブラウザは問題ないはずです
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート