摘要:沒有原型的對象為數不多,就是其中之一。它創建一個新對象,其中第一個參數是這個對象的原型,第二個可選參數,用以對對象的屬性進行進一步描述。序列化對象還原對象
一 創建對象:
對象直接量:由若干名/值對組成的映射表,名/值對中間使用冒號分離,明/值對之間用逗號分離,整個映射變使用花括號括起來。舉例如下:
var book = { "main title": "javascript", // 屬性名字里有空格,必須用字符串表示 "sub-title": "The Definitive Guide", // 屬性名字里連字符,必須使用字符串便是 "for": "all audiences", // "for"是保留字,因此必須用引號 author: { // 這里的屬性值是一個對象 firstName: "David", // 注意,這里的屬性名都沒有引號 surname: "Flanagan" } };
通過new創建對象:new運算符創建并初始化一個對象。關鍵字new后跟隨一個函數調用。這里的函數稱作構造函數,構造函數用以初始化一個新創建的對象。例如:
var o = new Object(); // 創建一個空對象,和{}一樣 var a = new Array(); // 創建一個空數組,和[]一樣
原型:每一個javascript對象都和另一個對象關聯。
沒有原型的對象為數不多,Object.prototype就是其中之一。
Object.create():它創建一個新對象,其中第一個參數是這個對象的原型,第二個可選參數,用以對對象的屬性進行進一步描述。例如:
var o1 = Object.create({x:1, y:2}); // o1繼承了屬性x和y var o2 = Object.create(null); // o2不繼承任何屬性和方法
二 屬性的查詢和設置
可以通過點(.)或方括號([])運算符來獲取屬性的值。運算符左側應當是一個表達式,它返回一個對象。對于點來說,右側必須是一個以屬性名稱命名的簡單標識符。對于
方括號來說,方括號內必須是一個計算結果為字符串的表達式,這個字符串就是屬性的名字:
var author = book.author; // 得到book的"author"屬性 var name = author.surname; // 得到auhor的"surname"屬性
和查詢屬性的寫法一樣,通過點和方括號也可以創建屬性或給屬性賦值,但需要將它放在表達式的左側:
book.edition = 6; // 給book創建一個名為"edition"的屬性 book["main title"] = "ECMAScript"; // 給"main title"屬性賦值
三 刪除屬性
delete運算符可以刪除對象的屬性。它的操作數應當是一個屬性訪問表達式。delete只是斷開屬性和宿主對象的聯系,而不會去操作屬性中的屬性。例如:
delete book.author; // book不再有屬性author
delete運算符只能刪除自有屬性,不能刪除繼承屬性。
四 檢測屬性
javascript對象可以看做屬性的集合。需要檢測集合中成員的所屬關系--判斷某個屬性是否存在于某個軟件中。可以使用in運算符,hasOwnProperty()和propertyIsEnumerable()方法來完成。
五 枚舉屬性
遍歷對象屬性三種方法: * 通常使用for/in循環. * Object.keys(). * Object.getOwnPropertyNames().
六 屬性getter和setter
對象由名字、值和一組特性構成的。屬性值可以用一兩個方法替代,這兩個方法就是getter和setter。由getter和setter定義的屬性稱作“存儲器屬性”, 不同于“數據屬性”,數據屬性只有一個簡單的值。
七 對象的三個屬性
* 原型屬性: 要想檢測一個對象是否是另一個對象的原型,請使用isPrototypeof()方法。 * 類屬性: 使用classof()函數可以返回傳遞給它的任意對象的類。
function classof(o) { if (o === null ) return "Null"; if (o === undefined) return "Undefined"; return Object.prototype.toString().call(o).slice(8, -1); }
八 序列化對象
對象序列化是指將對象轉換為字符串,也可以將字符串還原為對象。 * JSON.Stringify() 序列化對象 * JSON.parse() 還原js對象
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86305.html
摘要:理解的函數基礎要搞好深入淺出原型使用原型模型,雖然這經常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統的類繼承還要強大。中文指南基本操作指南二繼續熟悉的幾對方法,包括,,。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家帶來幫助....(據說是阿里的前端妹子寫的) this 的值到底...
摘要:對象在中,除了數字字符串布爾值這幾個簡單類型外,其他的都是對象。那么在函數對象中,這兩個屬性的有什么區別呢表示該函數對象的原型表示使用來執行該函數時這種函數一般成為構造函數,后面會講解,新創建的對象的原型。這時的函數通常稱為構造函數。。 本文原發于我的個人博客,經多次修改后發到sf上。本文仍在不斷修改中,最新版請訪問個人博客。 最近工作一直在用nodejs做開發,有了nodejs,...
摘要:可嵌入動態文本于頁面,對瀏覽器事件作出響應,讀寫元素,控制等。年月,發布了一款面向普通用戶的新一代的瀏覽器版,市場份額一舉超過。網景將這門語言作為標準提交給了歐洲計算機制造協會。線程和的并發執行都是線程安全的。后面會詳細講解對象類型的轉換。 本文由云+社區發表作者:殷源,專注移動客戶端開發,微軟Imagine Cup中國區特等獎獲得者 JavaScript越來越多地出現在我們客戶端開...
摘要:注意句柄棧并不是調用棧中的一部分,但句柄域卻在棧中。一個依賴于構造函數和析構函數來管理下層對象的生命周期。對象模板用來配置將這個函數作為構造函數而創建的對象。 如果你已經閱讀過了上手指南,那么你已經知道了如何作為一個單獨的虛擬機使用 V8 ,并且熟悉了一些 V8 中的關鍵概念,如句柄,域 和上下文。在本文檔中,還將繼續深入討論這些概念并且介紹其他一些在你的 C++ 應用中使用 V8 的...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
閱讀 1778·2023-04-25 14:33
閱讀 3378·2021-11-22 15:22
閱讀 2177·2021-09-30 09:48
閱讀 2684·2021-09-14 18:01
閱讀 1740·2019-08-30 15:55
閱讀 3006·2019-08-30 15:53
閱讀 2139·2019-08-30 15:44
閱讀 648·2019-08-30 10:58