Enumerationオブジェクト

Enumerationオブジェクトは、ループのために、横断オブジェクトが含まれている属性を参照します

var wangjia = {
            wife1: {
                name: "xiaoli"
            },
            wife2: {
                name: "xiaozhao"
            },
            wife3: {
                name: "xiaozhang"
            },
            wife4: {
                name: "xiaowang"
            },
            sayWife: function(num) {
                return this["wife" + num];
            }
        };
        for (var prop in wangjia) {
            console.log(prop);
        }

ここに画像を挿入説明
オブジェクトのプロパティとメソッド名の内側には、プリントアウトされているが、我々は、プロパティ値の正確な方法を知りませんでした!

var wangjia = {
            wife1: {
                name: "xiaoli"
            },
            wife2: {
                name: "xiaozhao"
            },
            wife3: {
                name: "xiaozhang"
            },
            wife4: {
                name: "xiaowang"
            },
            sayWife: function(num) {
                return this["wife" + num];
            }
        };
        for (var prop in wangjia) {
            console.log(wangjia.prop);
        }

ここでの操作は、[「小道具」]王家に変換されますが、オブジェクトは王家の小道具のプロパティではありません、それは5つの未定義の背景が印刷されます!

var wangjia = {
            wife1: {
                name: "xiaoli"
            },
            wife2: {
                name: "xiaozhao"
            },
            wife3: {
                name: "xiaozhang"
            },
            wife4: {
                name: "xiaowang"
            },
            sayWife: function(num) {
                return this["wife" + num];
            }
        };
        for (var prop in wangjia) {
            console.log(wangjia[prop]);
        }

ここに画像を挿入説明
プロパティのみ、なしプロパティ名の値を出力します!変数と属性の違いにそれほど注意を払います!
プロトタイプの身体を含む性質は、プリントアウトされているので、しかし、彼は手動で変更されます!だから、プロパティにfunction hasOwnPropertyかどうかを判断するために彼に出てきます

var wangjia = {
            wife1: {
                name: "xiaoli"
            },
            wife2: {
                name: "xiaozhao"
            },
            wife3: {
                name: "xiaozhang"
            },
            wife4: {
                name: "xiaowang"
            },
            sayWife: function(num) {
                return this["wife" + num];
            },
            __proto__: {
                wa: "uu"
            }
        };
        for (var prop in wangjia) {
            if (!wangjia.hasOwnProperty(prop)) {
                console.log(wangjia[prop]);
            }
        }

ここに画像を挿入説明実際、prototypeプロパティの本文のみをプリントアウト!
ここに画像を挿入説明
instanceofのオブジェクトAとオブジェクトBはオブジェクトAがBのコンストラクタに構成されているかどうかを指します!これは公式の説明ですが、はっきりしませ王家オブジェクトコンストラクタオブジェクトが、彼のプロトタイプチェーンのプロトタイプオブジェクトがあります!- 「だから最後に、機能が正確にB鎖Aのプロトタイプオブジェクトのプロトタイプが存在するかどうかを決定します!

オブジェクトを識別するためのアレイまたは、VAR ARR = [] || { }?どうかを判断するために
、実際にオブジェクト-としてカウント配列!
方法1:自分のコンストラクタは同じではありません!ここに画像を挿入説明
方法2:配列はオブジェクトであるので、配列のプロトタイプチェーン上のプロトタイプのオブジェクトでなければならない
オブジェクトのプロトタイプチェーン上のプロトタイプ配列なし!

方法3:使用Object.prototype.toString.call([])
[]配列のtoString印刷法プロトタイプオブジェクトに応じて!
ここに画像を挿入説明

公開された37元の記事 ウォンの賞賛0 ビュー700

おすすめ

転載: blog.csdn.net/weixin_43704007/article/details/105001781