javascriptの美を体験します.第七課原型チェーンと原型の拡張方法を理解します.


概要
前の授業を通して、みんなはもう一つのjsonの方式で対象を定義します.これは伝説のシングルモデルです.もちろんこれは覚えなくてもいいです.デザインについてはまだ分かりません.しかし、どこかであなたが普段使っているものと聞いているものとは違っていますよね.例えば、jsが何かの原型を継承していると聞いていますが、その対象は伝統的なjsの対象とは違っているようです.はい、今日は中の草花を徹底的に理解させます.
1.プロトタイプチェーンの理解
一つ目のことは他の言語に関わらず、一つの言葉で、jsの中の対象が一つの原型を含むということを覚えておけば、原型は何ですか?もう一つの対象です.
例を挙げます
毎日自転車で学校に行きます.車が壊れたらどうしますか?それとも自分の家の棚に押して引き続き乗りますか?それとも棚から道具を見つけて修理します.
モデルはあなたの家の棚に相当します.あなたの自転車は対象です.
自転車のカバンはあなたが人為的に加えたものです.ドライバーとタイヤの中にはあなたの自転車に必要なものがあります.自転車を修理するものもあります.はい、コードに戻って表示します.
            var bike = {
                  :"  "
            };
            console.log(bike);//Object {  : "  "}
            //      ,     ,           
            console.log(bike.__proto__)
覚えてください.この屋台にはいろいろな道具や部品があります.引っ張るし、自転車を作ることもできます.この程度まで理解すればいいです.ある日学校から帰ったら、あなたのカバンがなくなりました.どうすればいいですか?まず自分の車の中にありますか?プロトプロトは層を追って上に行くとプロトタイプチェーン検索です.図のように
画像の説明
2.原型の用途
これは何の役に立つか分かりますか?我々は実際の状況を見て、https://docs.angularjs.org/ap...
angglarのmerge関数は、簡単に言うと、オブジェクトaがあります.もう一つのオブジェクトbがあります.二つのオブジェクトを一つのオブジェクトに統合したいですが、どうやって実現しますか?注意要求は人を合併するだけで加えて、原型の上のは計算しません.
直接のソースコードは、簡単な人の指に、これはアングラーのアーキテクチャです(1.6.2)私の粗さを実現しました.
        (function(window) {
            var angular = window.angular || (window.angular = {});
            angular.merge=function(dst,src){
                for(var prop in src){
                    if(src.hasOwnProperty(prop)){

                        dst[prop] =src[prop];
                    }
                }
                return dst;  
            }
        })(window);

        var person = {
            name:"leo",
            age:18
        };
        var person2 = {
            job:"    "
        };
        console.log(angular.merge(person,person2));
       // https://docs.angularjs.org/api/ng/function/angular.merge
ハスOwnPropertyこれは自分が直接追加した対象と判断するために使われていますが、今は用途が分かりますよね?jsの原理を理解して、angglarの倉庫を理解して実現することができて、あなたはまた自分がanglarを使うことができないことに悩んでいますか?
2.物事はすべて対象とします.
よく人の話を聞きますが、jsはすべてのものが対象です.
どうやって証明しますか?
        var num = 12;
        console.log(num.__proto__);
        var str = 'abc';
        console.log(str.__proto__);
        var arr = [];
        console.log(arr.__proto__.__proto__);
        var json = {};
        console.log(json.__proto__.__proto__);
説明しないで、1つの話、すべての対象はすべて1つの祖先の対象Objectがあります.
3.すべての物事の対象は何ですか?
一つの言葉で、原型の方法を広げて、面接問題になると、自分で体得してみます.

  ,                   i,
  ,
    arr[1]    1, arr.indexOf(arr[1])   0    1  i = 1         ,    。   :

    var arr = [1,1,12,5,8,7,8,7,21,5,0,0];
    var arr2 = [];
    for(var i = 0;i
それでは問題が来ました.どうやってindexOfメソッドを低バージョンのブラウザに互換させるかということです.ここでは、すべてのものが対象となります.
上のコード:
Array.prototype.indexOf=function(item){
    for(var i=0;i
そうではないと思うかもしれませんが、newキーワードについては話さないですか?安心してください.これらは授業が終わります.