js對象枚舉


js對象枚舉

使用for in關鍵字,對象屬性名挨次。

 

訪問屬性對象點,內部轉換括號間。

 

屬性僅在對象中,含有自己屬性通。

 

屬性是否原型鏈,判斷in字后邊見。

 

判斷包含有原型,實例左右構造停。

 

使用for in關鍵字,對象屬性名挨次。

遍歷對象使用 for 和 in 這兩個關鍵字

for(var pro in obj){}

再循環的時候 對象的屬性名字 會挨個 賦值到 pro 這個變量上 當然這個屬性可以隨便屈名字

 

訪問屬性對象點,內部轉換括號間。

我們在編程的時候訪問屬性常用方式 obj.property 這樣的操作內部實際上是轉換成 obj[property]

<script>

    var obj = {

        name: "老鐵",

        age: 20,

        show: function() {

            console.log("handsome");

        }

    }

    for (var pro in obj) {

        console.log(pro + " == " + obj[pro]);

        /*

        name == 老鐵

        js.html:21 age == 20

        js.html:21 show == function() {

            console.log("handsome");

        }

        */

    }

 

屬性僅在對象中,含有自己屬性通。

遍歷的時候有時候我們只是需要當前對象中的屬性 而不是繼承鏈上的

這個時候系統給我們提供了一個方法 ob.hasOwnProperty(屬性名) 判斷這個屬性是當前對象而並非繼承鏈

  <script>

    function Person() {

        this.name = "小城貝爾";

        this.age = "23";

        this.tall = 180;

    }

    Person.prototype.handsome = 99;

    Person.prototype.school = "西安體育學院";

    Person.prototype.tall = 175;

 

    var person = new Person();

 

    for (var pro in person) {

        console.log(pro + "===> " + person[pro]);

        /*

            name===> 小城貝爾

            age===> 23

            tall===> 180

            handsome===> 99

            school===> 西安體育學院

        */

    }

    //上邊我們可以看到 這樣會將原型鏈上的屬性一並遍歷出來 如果我們不想獲得原型上的屬性

    // 就可以使用 obj.hasOwnProperty("屬性名");判斷是否是只屬於 對象本身

    for (var pro in person) {

        if (person.hasOwnProperty(pro)) {

            console.log(pro + "==\\=> " + person[pro]);

            /*

                name==\=> 小城貝爾

                age==\=> 23

                tall==\=> 180

            */

        }

    }

</script>

 

 

屬性是否原型鏈,判斷in字后邊見。

 

 

 

如果你只是想判斷這個屬性值 是屬於這個對象原型鏈 那么 可以使用 in

屬性名 in 對象 (屬性名必須加引號不然會報錯)

<script>

    function Person() {

        this.name = "小城貝爾";

        this.age = "23";

        this.tall = 180;

    }

    Person.prototype.handsome = 99;

    Person.prototype.school = "西安體育學院";

    Person.prototype.tall = 175;

 

    var person = new Person();

    var inres = "tall" in person; //true

    var inres1 = "age" in person; //true

    var inres2 = "school" in person; //true

    console.log(inres);

    console.log(inres1);

    console.log(inres2);

</script>

property in 構造函數

 

 

判斷包含有原型,實例左右構造停。

 

 

 

判斷一個對象是不是通過某個構造函數構建出來的

A(對象) instance B (構造函數)

實際上是 判斷的是 A 的原型鏈是否包含 B 的原型鏈

因為當你測試的時候 判斷是否是它超類構造出來的結果也是true

 <script>

    function Person() {

        this.name = "小城貝爾";

        this.age = "23";

        this.tall = 180;

    }

    Person.prototype.handsome = 99;

    Person.prototype.school = "西安體育學院";

    Person.prototype.tall = 175;

 

    var person = new Person();

    var ins = person instanceof Person; //true

    var ins1 = person instanceof Object; //true

    console.log(ins);

    console.log(ins1);

</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM