HeadFirstJavaScript -- chapter 5 --Object

在JavaScript中創(chuàng)建一個object:

var objectName = {
    objProperty1 : value,
    objProperty2 : value,
    objProperty3 : value,
};
說明: 用聲明變量的方法來聲明一個對象,等號右邊使用大括號包括,
并在里面填寫對象特有的屬性及方法,上面的小例子并沒有寫方法
【因為我還在屬性這個階段,不過,有了Java編程基礎之后,個人認為
繼續(xù)下去不難】,要細心留意的一點是:
  屬性名 冒號 屬性值 逗號。
  最后在整個代碼片段以分號結束。

創(chuàng)建一個沒有屬性的對象?
Just like :

var obj = {
    // 不寫任何屬性。
};

我為什么要去創(chuàng)建一個空的對象?
靈活一點是嗎?

【問題】創(chuàng)建了空對象后,要如何去使用?-->> 添加屬性和刪除屬性

【回答】

var obj = {};
console.log("創(chuàng)建了一個空對象,現(xiàn)在測試開始...");
obj.color = "red";
obj.state = false;

console.log(obj.color + "    " + obj.state);

console.log("刪除屬性state...");
delete obj.state;

console.log(obj.color + "    " + obj.state);

直接給不存在的對象屬性賦值,便可以使用。<br>
對于一個不存在的對象屬性,直接訪問或?qū)⒌玫揭粋€undefined的結果。
<font color = red>刪除屬性刪除的是屬性本身,所以當屬性被刪除后,繼續(xù)訪問該屬性是錯誤的,不符合邏輯的。</font>

【問題】JS對象去訪問一個不存在的屬性會得到一個什么結果?

【回答】答:一個undefined的結果如果去訪問一個不存在的屬性。

【問題】在類中,如果我放了一個逗號在最后一個屬性后面,會發(fā)生什么結果?

【回答】_在大多瀏覽器中,一般都不會報錯,但是在版本較老的瀏覽器中可能會只執(zhí)行到它之前的語句。

【問題】我能通過console.log語句將一個object在控制臺console中顯示出來嗎?
【回答】Yes, you can.

<font color = red>一個變量并不能實際上地存儲一個對象object,而是存儲一個reference,指向object.</font>

我們現(xiàn)在知道創(chuàng)建一個對象可以通過```var obj = {...}```,
但是obj本身存儲的并不是這個對象```obj```本身,
而是一個指向```對象本身```的指針變量。

【問題】只要是一個對象,那么這個對象就可以擁有屬性和行為,然而,我們學會了如何為對象添加屬性,但是,要如何給對象添加行為behavior呢?

【回答】

var dog = {
    color:yellow,
    legs:4,  // 注意屬性與屬性之間由逗號隔開

    /* 下面為dog對象添加行為,我們可以看到,聲明function中,并沒有函數(shù)名,但是我們可以通過dog對象的shoutting屬性找到這個function */
    shoutting : function () {
        console.log("wang...wangwangwang....");
    }
}
【說明】將對象屬性名與匿名函數(shù)綁在一起,就成為對象的方法了。

【問題】上面演示了如何為object,對象添加其本身的動作行為,那我們?nèi)绾蝸硎箤ο蟮男袨榧せ钅兀?br>
【回答】其實,這個就和Java語言很相似了,我們可以通過"."符號來使連接對象與function,話多無益,例子最實際,下面一起來看看吧!

var dog = {
    color:yellow,
    legs:4,  // 注意屬性與屬性之間由逗號隔開

    /* 下面為dog對象添加行為,我們可以看到,聲明function中,并沒有函數(shù)名,但是我們可以通過dog對象的shoutting屬性找到這個function */
    shoutting : function () {
        console.log("wang...wangwangwang....");
    }
}

dog.shoutting();  // 通過"對象名.屬性名"來使對象動起來,其中屬性名也相當于是對象的方法名吧!

【說明】對象名.方法屬性名(),可以調(diào)用到對象的方法
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,140評論 2 17
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,556評論 6 13
  • 9月的第一天開始了,全國的小學生都開學了,新的一月新的開始,接下來我也要加緊學習與踐行的步伐,很多時候惰性容易控制...
    肖瀟1012閱讀 232評論 3 1
  • 就在今天,10月31日,中國境內(nèi)各大區(qū)塊鏈交易所全部關閉,以后再也不能輕松的交易數(shù)字貨幣了。關停消息是九月中旬響應...
    小學生王旋閱讀 233評論 0 0

友情鏈接更多精彩內(nèi)容