Javascriptモデルまとめ整理

5434 ワード

多くの対象言語の中で、対象は常にクラスの中で実用化されています.類と対象の関係は金型とモジュールのようです.Javascriptには類の概念がないので、ES 6に導入されたクラスも一種の文法飴にすぎないです.本質的には原型を利用して実現します.プロトタイププログラミング言語では、クラスは必要ではありません.オブジェクトは必ずしもクラスのインスタンス化ではなく、別のオブジェクトをクローンすることによって得られます.
原型モードはオブジェクトを作成するためのモードです.クラスを中心とする言語では、オブジェクトを作成するには、まずこのオブジェクトの種類を指定し、オブジェクトを具体化します.原型モードを使用してオブジェクトを作成する場合は、オブジェクトの具体的なタイプに関心を持たずに、オブジェクトを見つけ、クローンによって同じオブジェクトを作成します.したがって、前者で同じオブジェクトを一つのオブジェクトによって作成するには、まずこのオブジェクトのすべての属性情報を保存して、新規作成のオブジェクトに属性情報を設定します.プロトタイプモードではクローンを使うだけで同じ機能が完成します.
いくつかのファンタジー小説の中には、しばしばいくつかの修真大能が現れ、分身として世の中を遊歩している.このプロセスはプロトタイプモードの応用に適しています.
function Master(){
    this.blood = 100;
    this.level = 6;
}

var noumenon = new Master();
noumenon.level = 9;


var ektype = Object.create(noumenon);

console.log(ektype);
ES 5は、オリジナルのクローン方法を提供しています.Object.createでは、この方法に対応していないブラウザは以下のコードを使用できます.
function clone(obj){
    function F(){};
    F.prototype = obj;
    return new F();
}

var ektype = clone(noumenon);
以上のコードを通して,同じオブジェクトをプロトタイプモードでどうやってクローンするかを見た.モデルの真の意味は同じオブジェクトを作成するのではなく、オブジェクトを作成する方法を提供します.Javascriptのオブジェクト指向メカニズムはプロトタイプモードに基づいています.彼の対象システムはプロトタイプモードを使用して、クローンによって作成されます.クローンはオブジェクトを作成する過程と手段です.継承例:
function Person(name){
    this.name = name;
}

function Developer(lang){
    this.language = lang;
}

var p = new Person('coder');

Developer.prototype = p;

var dev = new Developer('Javascript');
 
プロトタイプの継承体系に基づいて,サブクラスの毎回の実用化はその構造関数のプロトタイプ属性のクローンである.したがって、Developerオブジェクトを作成するたびに、pオブジェクトのクローンです.
Javaなどのクラスを中心とした対象言語では、newを用いてオブジェクトを具体化することが多い.しかし、Javascriptは、プロトタイプの対象言語に基づいています.ここでnew演算子がJavaのnew演算子とは異なり、Javascriptのnew演算子もクローンによって対象を具体化しています.クローンはコンストラクタの原型オブジェクトです.new演算子の役割は以下のコードに等しいです.
function Person(name){
    this.name = name;
}

function Developer(lang){
    this.language = lang;
}

var p = new Person('coder');

Developer.prototype = p;


function _new(_Constructor) {
    var that = Object.create(_Constructor.prototype);
    var args = Array.prototype.slice.call(arguments, 1);
    var other = _Constructor.apply(that, args);
    
    return (typeof other === 'object' && other) ? other : that;
}
_new(Developer, 'JavaScript')
これからも分かるように、Javascriptの原型は実際に多くの矛盾が存在しています.そのいくつかの複雑な文法はこれらの種類の言語に基づいているように見えます.したがって、jQueryではnew演算子を使用してオブジェクトを作成することは避けられます.
前に述べたように、Javascriptで新しく作成されたオブジェクトは元のオブジェクトに基づいてクローンされているので、Javascriptでは最も原始的なオブジェクトが存在します.Object.prototypeは、すべてのオブジェクトがそれによってクローンされています.
 
ここでクローンというのはJavascriptプロトタイプモードという大きな環境における意味表現であり、コンピュータの物理世界に真のクローンは存在しない.したがって、ここではクローンについては、__u u u u_を持つものが生まれると理解すべきである.プロト.属性は元のオブジェクトを指すプロセスで、元のオブジェクトはクローンされたオブジェクト、すなわち構造関数のプロトタイプオブジェクトとなります.
 
以上の共通認識を持ったら、Javascriptでプロトタイププログラミングの基本ルールを得ることができます.
  • Javascriptのほとんどのデータは対象
  • です.
  • オブジェクトを得るには、インスタンスクラスではなく、オブジェクトをプロトタイプとして見つけ、それをクローンする
  • です.
  • オブジェクトは、プロトタイプ
  • を覚えています.
  • オブジェクトがある要求に応答できない場合、彼はこの要求を自分のプロトタイプ
  • に依頼します.
     
    参考書:
    『Javascript言語精粋』
    「Javascript設計モードと開発実践」