Jsにおける対象向けの三つの特徴:パッケージ、継承、多形


Jsにおける対象向けの三つの特徴:パッケージ、継承、多形
前文:対象、オブジェクト、構造関数、プロトタイプ、プロトタイプチェーン
  • は対象に向かっています.プログラムでは、まず対象構造を使って、一つの事物の属性と機能を集中的に保存してから、必要に応じて物事の属性と機能を使うというプログラミング思想が対象に向けられています.
  • オブジェクト:プログラムには、1つの事物属性と機能のプログラム構造/記憶空間が集中的に格納されています.
  • コンストラクション:同じタイプのすべてのオブジェクトの同じ構造を専門に記述する関数.
  • プロトタイプ:このタイプのすべてのサブオブジェクトは、メンバー方法または属性を共有する親レベルオブジェクトをまとめて保存する.
  • プロトタイプチェーン:多段の親オブジェクトによって段階的に継承されたチェーン構造.
  • 一.パッケージ(オブジェクト作成)
  • 用{}オブジェクトを作成します.
  • var    ={
         
    		   1122...:...,
    		   1function(){
         
    			...this.   ...
    		}
    		    2function(){
         
    			...this.   ...
    		}
    	}
  • 用new Object()作成
  • 	(1).var    =new Object()
       		   new Object()      {
         }var    ={
         }
       	 (2).                
       			   .  = 
       			   .   =function(){
         
    							...this.   ...
    				}
    	                   ,         ,            ,
    	         。
    
  • は、複数の同じ構造のオブジェクト
  • を構成関数で繰り返し作成する.
          ,          ,                ,        。
    
    (1).      
    	function    (    ){
         
    		this.   =  1;
    		this.   =  2;
    		this.   =function(){
         
    			...this.   ...
    		}		
          }
    (2)  new             
    	var    =new      (    )
    
    二.継承
    継承:親オブジェクトのメンバーは、サブオブジェクトを繰り返し作成する必要はなく、直接使用できます.コンストラクタはコードを再利用することができますが、メモリを浪費し、コンストラクタに定義する方法は、オブジェクトを作成するたびに、一つのfunctionを実行します.この方法の全く同じコピーを作成して、新しく作成した各オブジェクトに与えます.複数のサブオブジェクトを実現するためには、共通の方法を構築関数で定義せずに、複数のサブオブジェクトを継承することによって共通の方法を使用するべきである.
  • Jsの継承はすべて原型オブジェクトの継承によって達成された
  • である.
  • プロトタイプオブジェクトは自分で作成する必要がなく、コンストラクタを定義すると、空のプロトタイプオブジェクトのコンストラクターが付随されます.
  • newを用いて構成関数を呼び出してサブオブジェクトを作成すると、newの第2ステップは、現在新たに作成されたサブオブジェクトの構造関数を継承するプロトタイプオブジェクト(Jsにおいてnewキーワードを使用して構造関数のインスタンス化オブジェクトを呼び出すとnewの役割)iを設定している.プロト.属性として、現在のオブジェクトを表す親のオブジェクトは誰かii.newの第二ステップで、現在の新しいオブジェクトのプロト.属性は現在のコンストラクタのプロトタイプオブジェクトの結果を指します.父オブジェクト(コンストラクタのプロトタイプオブジェクト)のメンバーは作成を繰り返す必要がなく、直接使用できます.
  • プロトタイプチェーンは、オブジェクトが利用可能なすべての属性と方法を保持しています.属性と方法の使用順序を制御しています.まず、自己の属性と方法を使用して、プロトタイプチェーンに沿って親レベルに検索することはできません.
  • 三.多態
    多状態:一つの関数は、場合によっては異なる状態を示します.
  • 書き換え(override):子オブジェクトに親オブジェクトと同名のメンバーを定義し、その結果:このメンバーを再利用する場合は、子オブジェクト自体の同名属性を優先し、親オブジェクトの同名属性を永久に遮蔽する.親から引き継ぐメンバーが使いにくい場合は、同じ名前の新メンバーをサブオブジェクト内に定義し、親から引き継ぐ同名のメンバーを上書きすることができます.すべてのカスタムタイプとカスタムオブジェクトの中で、オブジェクトの内容を出力するために、toString()の影響を避けるために、toString()を提供することが望ましい.
  • カスタム継承:(1).現在の親オブジェクトが良くないと子オブジェクト全体を置き換えることができます.(2).3つの方法:i.子オブジェクトのみを修正する父オブジェクト:実は、子オブジェクトを修正する__u u uプロト.属性は新しい親オブジェクトを指します.子供の相手proto_=新しい父の相手問題:__u uプロト.使用を許可しないブラウザがあります.だから、Object.set ProttotypeOf(子オブジェクト、新しい親オブジェクト)が代わりに使用されます.プロト.ii.このタイプのすべてのサブオブジェクトの親オブジェクトを交換する:つまり、構造関数の原型オブジェクトを交換する:構造関数.prototype=新しいプロトタイプのオブジェクトに注意:サブオブジェクトを作成する前に変更すべきで、このように新たに作成したサブオブジェクトは、自動的に新しいプロトタイプのオブジェクトを継承し、サブオブジェクトを作成した後に交換することができます.作成したサブオブジェクトは、まだ古い原型オブジェクトを引き継いでいます.