JavaScript入門-對象

js對象

本篇主要介紹js裏如何建立對象,以及for循環訪問對象的成員...編程

什麼是對象?

  • 對象,並非中文裏有男女友意思,它是從英文裏翻譯來的,英文叫[Object],目標,物體,物品的意思。
  • 在編程裏,咱們常常聽到有人說,面向對象。那這個對象,你簡單來理解,就是一個容器,一個能裝變量、函數體的容器。也能夠在裏面繼續裝下對象。

對象的建立

//方法一(推薦)
    var obj = {
        name : 'rainbow',
        run : function(){
            console.log('跑步中...')
        }
    }
    //方法二(不推薦)
    var obj = new Object()
    obj.name = 'rainbow'
    obj.run = function(){
        console.log('running...')
    }

    //方法三(推薦)
    var obj = {}
    obj.name = 'rainbow'
    obj.say = function(){
        console.log('saying ...')
    }

ps:數組

  1. 以上就是建立對象的三種方法,儘可能避免第二種方法,由於new Object效率低,建議使用第三種或者第一種
  2. 屬性名能夠單引,能夠雙引,也能夠不引,但他的類型永遠都是string類型
  3. 變量裏的成員變量,也能夠被賦值方法。可是不推薦這麼作。

for循環訪問對象成員

for...in函數

//先定義一個對象
    var obj =  {
        name : 'rainbow',
        age : 20,
        sex : 'man',
        run : function(){
            console.log('I'm running...')
        }
    }

    for ( var key in obj ){
        if('function' == typeof obj[key]){
            obj[key]()
            break
        }
        console.log(obj[key])
    }

    //輸出結果以下
    rainbow
    20
    man
    I am running...

    /*估計有些人會問,爲何不是用obj.key訪問呢??
    那咱們不妨打印看看,boj.key是什麼?
    那請往下看:*/
    for (var key in obj) {
        console.log(key , typeof key)
        console.log(obj.key)//undefined
    }
  • 打印以下

ps:咱們能夠知道,在js裏,for...in不能用點運算訪問,而是用obj[key]訪問,而且方法名也能夠訪問。翻譯

for...ofcode

//1.使用js內置的對象,建立一個數組對象
    var array = new Array(11,56,89,78,-12)
    console.log( typeof array )//object
    for ( var val of array){
        console.log(val)//11,56,89,78,-12
    }

    //2.用的自定義的對象
    var obj =  {
        name : 'rainbow',
        age : 20,
        sex : 'man',
        run : function(){
            console.log('I'm running...')
        }
    }
    for ( var val of obj ){
        console.log(obj)//obj is not iterable
    }
    這裏報錯的意思是,obj這個對象是不可迭代的

總結對象

  • 用for...of不能迭代自定義對象
  • 用for...in,不能用點運算訪問成員,而是用對象[屬性名],能夠訪問一個不存在的屬性,可是返回值爲undefined
  • 不要使用普通for循環訪問對象成員
相關文章
相關標籤/搜索