JavaScript プロトタイプの継承_js オブジェクト指向

WBOY
リリース: 2016-05-16 17:57:59
オリジナル
1073 人が閲覧しました

Object.prototype
JavaScript はプロトタイプの継承に基づいており、すべてのオブジェクトにはプロトタイプ属性があります。 Object.prototype はすべてのオブジェクトのルートであり、変更できません。

コードをコピーします コードは次のとおりです。

Object.prototype=null; alert(Object .prototype);//[object Object]

Object と Object.prototype
Object は Object.prototype を継承し、Object.prototype に属性を追加します。オブジェクトに反映されます。例:

コードをコピー コードは次のとおりです:
Object.prototype.nameStr= "オブジェクト プロトタイプ" ;
Object.prototype.getName=function(){return this.nameStr};
alert(Object.getName());//オブジェクト プロトタイプ

関数.prototype と Object .prototype
Object.prototype はすべてのもののルートであるため、Function.prototype も Object.prototype のすべてのプロパティを継承します。例:

コードをコピー コードは次のとおりです:
Object.prototype.nameStr= "オブジェクト プロトタイプ" ;
Object.prototype.getName=function(){return this.nameStr};
alert(Function.prototype.getName());//オブジェクト プロトタイプ


Object/Function/String/Number/Boolean/Array and Date
Object/Function/String/Number/Boolean/Array and Date はすべて関数であり、関数は Function.prototype を継承するため、Function.prototype を変更します。オブジェクト/関数/文字列/数値/ブール値/配列および日付にも影響します。例:

コードをコピー コードは次のとおりです:
Function.prototype.initType= '関数の種類' ;
Function.prototype.getType=function(){return this.initType};//alert(Object.getType());//関数の種類
//alert(Date) .getType() );//関数の型
//alert(Number.getType());//関数の型
//alert(String.getType());//関数の型
/ /alert(Boolean .getType());//関数型
alert(Array.getType());//関数型


同様に、Function.prototype も Object の影響を受けます。 .prototype は次のレベルに渡されました。例:


Object.prototype.nameStr= "オブジェクト プロトタイプ" ;
Object.prototype.getName=function(){return this.nameStr};
alert(Function.prototype.getName());//オブジェクト プロトタイプ
alray.getName ()); //オブジェクト プロトタイプ



コードをコピー
コードは次のとおりです: alert( Boolean.prototype.getName());//オブジェクト プロトタイプ
Array/Array.prototype および Function.prototype/Object.prototype


配列はFunction.prototype の影響を受ける関数オブジェクト Array.prototype の影響は関数オブジェクトではなく、Function.prototype の影響を受けません。ただし、すべてのオブジェクトが Object.prototype の影響を受けるため、Array.prototype も Object の影響を受けます。 。プロトタイプ。例:



コードをコピー
コードは次のとおりです: Object.prototype.nameStr= "オブジェクト プロトタイプ" ; Object.prototype.getName=function(){return this.nameStr};
//alert(Function.prototype.getName());//オブジェクト プロトタイプ
//アラート(Boolean.prototype .getName());//オブジェクト プロトタイプ
Function.prototype.initFun=function(){
return 'Function.prototype.initFun';
}
alert(Array. initFun()) ;//Function.prototype.initFun
var arr=['a','b'];
alert(arr.getName());//オブジェクト プロトタイプ
alert(arr) .initFun() );//エラー: arr.initFun は関数ではありません
alert(arr.initFun);// 未定義

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