摘要:三方法是能夠在對象上執(zhí)行的動作四對象創(chuàng)建有以下三種方式來創(chuàng)建對象,包括構造函數(shù)對象直接量和函數(shù)。構造函數(shù)系統(tǒng)自帶使用操作符后跟構造函數(shù)用以初始化一個新創(chuàng)建的對象。內(nèi)部原理對象字面量提供了叫做字面量的快捷方式,用于創(chuàng)建大多數(shù)原生對象值。
一、對象概述
(1)JavaScript 中的所有事物都是對象:字符串、數(shù)字、數(shù)組、日期,等等。
(2)在 JavaScript 中,對象是擁有屬性和方法的數(shù)據(jù)。
二、 屬性是與對象相關的值。 2.1 訪問屬性(1)訪問屬性是通過 . 操作符完成的,但這要求屬性名必須是一個有效的變量名。如果屬性名包含特殊字符,就必須用 "" 括起來。
(2)訪問這個屬性也無法使用 . 操作符,必須用["xxx"]來訪問。
(3)實際上JavaScript對象的所有屬性都是字符串,不過屬性對應的值可以是任意數(shù)據(jù)類型。
(4)JavaScript規(guī)定,訪問不存在的屬性不報錯,而是返回 undefined。
2.2 刪除屬性(1)delete運算符用來刪除對象屬性,事實上delete只是斷開屬性和宿主對象的聯(lián)系,并沒有真正的刪除。
(2)delete運算符只能刪除自有屬性,不能刪除繼承屬性。要刪除繼承屬性必須從定義這個屬性的原型對象上刪除,而且這會影響到所有繼承自這個原型的對象。
(3)delete運算符用來刪除對象屬性,如果刪除成功或所刪除的項目不存在,delete將返回 true。
(4)注意,并不是所有的屬性都可以刪除,一些內(nèi)置核心和客戶端屬性是不能刪除的,通過var語句聲明的變量不能刪除,通過function語句定義的函數(shù)也是不能刪除的。
2.3 檢測屬性JavaScript對象可以看做屬性的集合,我們經(jīng)常會檢測集合中成員的所屬關系(判斷某個屬性是否存在于某個對象中)。2.3.1 in運算符
(1)可以通過 in 運算符、hasOwnPreperty() 和 propertyIsEnumerable() 來完成這個工作,甚至僅通過屬性查詢也可以做到這一點。
(2)in 運算符的左側是屬性名(字符串),右側是對象。如果對象的自有屬性或繼承屬性中包含這個屬性則返回true。
2.3.2 hasOwnProperty()方法(1)hasOwnProperty()方法,用來檢測給定的名字是否是對象的自有屬性。對于繼承屬性它將返回 false。
三、方法是能夠在對象上執(zhí)行的動作 四、對象創(chuàng)建有以下三種方式來創(chuàng)建對象,包括 ①new構造函數(shù)、②對象直接量和③Object.create()函數(shù)。4.1 構造函數(shù) 4.1.1 系統(tǒng)自帶
(1)new Object(), Array(), Number(),Boolean(), Date()...
(2)使用new操作符后跟Object構造函數(shù)用以初始化一個新創(chuàng)建的對象。
4.1.2 自定義(1)為了和普通函數(shù)區(qū)分,首字母大寫,采用大駝峰式寫法(普通函數(shù)采用小駝峰式寫法)。
(2)內(nèi)部原理
4.2 對象字面量(1)javascript提供了叫做字面量的快捷方式,用于創(chuàng)建大多數(shù)原生對象值。使用字面量只是隱藏了與使用new操作符相同的基本過程,于是也可以叫做語法糖。
4.3 Object.create() 4.3.1 語法 4.3.2 沒有原型的對象(1)可以通過傳入?yún)?shù) null 來創(chuàng)建一個沒有原型的新對象,但通過這種方式創(chuàng)建的對象不會繼承任何屬性和方法,甚至不包括基礎方法,比如toString()和valueOf()。
4.3.3 普通的空對象(1)如果想創(chuàng)建一個普通的空對象(比如通過{}或new Object()創(chuàng)建的對象),需要傳入Object.prototype。
閱讀更多
參考文章
深入理解javascript對象系列第一篇——初識對象
JavaScript中的對象
js之對象(經(jīng)典)
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/95105.html
摘要:對象數(shù)組初始化表達式,闖關記之上文檔對象模型是針對和文檔的一個。闖關記之數(shù)組數(shù)組是值的有序集合。數(shù)組是動態(tài)的,根闖關記之語法的語法大量借鑒了及其他類語言如和的語法。 《JavaScript 闖關記》之 DOM(下) Element 類型 除了 Document 類型之外,Element 類型就要算是 Web 編程中最常用的類型了。Element 類型用于表現(xiàn) XML 或 HTML 元素...
摘要:理解的函數(shù)基礎要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統(tǒng)的類繼承還要強大。中文指南基本操作指南二繼續(xù)熟悉的幾對方法,包括,,。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...
摘要:對象在中,除了數(shù)字字符串布爾值這幾個簡單類型外,其他的都是對象。那么在函數(shù)對象中,這兩個屬性的有什么區(qū)別呢表示該函數(shù)對象的原型表示使用來執(zhí)行該函數(shù)時這種函數(shù)一般成為構造函數(shù),后面會講解,新創(chuàng)建的對象的原型。這時的函數(shù)通常稱為構造函數(shù)。。 本文原發(fā)于我的個人博客,經(jīng)多次修改后發(fā)到sf上。本文仍在不斷修改中,最新版請訪問個人博客。 最近工作一直在用nodejs做開發(fā),有了nodejs,...
摘要:然后將構造函數(shù)的原型設為,便實現(xiàn)了對象繼承。首先,我們定義一個構造函數(shù),并在其中定義一個局部變量。這里的是局部變量,其作用域仍然存在是閉包現(xiàn)象,而非對象屬性。 Javascript是動態(tài)的,弱類型的,解釋執(zhí)行的程序設計語言。 Javascript極其靈活,支持多種程序設計范式:面向對象、指令式、函數(shù)式。JavaSCript最初被用于瀏覽器腳本,現(xiàn)在已經(jīng)是所有主流瀏覽器的默認腳本語言。瀏...
摘要:可嵌入動態(tài)文本于頁面,對瀏覽器事件作出響應,讀寫元素,控制等。年月,發(fā)布了一款面向普通用戶的新一代的瀏覽器版,市場份額一舉超過。網(wǎng)景將這門語言作為標準提交給了歐洲計算機制造協(xié)會。線程和的并發(fā)執(zhí)行都是線程安全的。后面會詳細講解對象類型的轉換。 本文由云+社區(qū)發(fā)表作者:殷源,專注移動客戶端開發(fā),微軟Imagine Cup中國區(qū)特等獎獲得者 JavaScript越來越多地出現(xiàn)在我們客戶端開...
摘要:在中,并沒有對抽象類和接口的支持。例如,當對象需要對象的能力時,可以有選擇地把對象的構造器的原型指向對象,從而達到繼承的效果。本節(jié)內(nèi)容為設計模式與開發(fā)實踐第一章筆記。 動態(tài)類型語言 編程語言按數(shù)據(jù)類型大體可以分為兩類:靜態(tài)類型語言與動態(tài)類型語言。 靜態(tài)類型語言在編譯時已確定變量類型,動態(tài)類型語言的變量類型要到程序運行時,待變量被賦值后,才具有某種類型。 而JavaScript是一門典型...
閱讀 1189·2021-11-24 09:39
閱讀 2695·2021-09-28 09:35
閱讀 1085·2019-08-30 15:55
閱讀 1381·2019-08-30 15:44
閱讀 888·2019-08-29 17:00
閱讀 1985·2019-08-29 12:19
閱讀 3324·2019-08-28 18:28
閱讀 702·2019-08-28 18:10