本篇內(nèi)容介紹了“javascript不使用new能夠創(chuàng)建對(duì)象嗎”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都做網(wǎng)站、成都網(wǎng)站制作, 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。
javascript不使用new運(yùn)算符也可以創(chuàng)建對(duì)象,方法:1、使用“var objectName={屬性名1:值1,屬性名2:值2,...};”語(yǔ)句;2、使用“Object.create(原型對(duì)象,descriptors)”語(yǔ)句。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
對(duì)象直接量
使用直接量可以快速創(chuàng)建對(duì)象,也是最高效、最簡(jiǎn)便的方法。具體用法如下:
var objectName = { 屬性名1 : 屬性值1, 屬性名2 : 屬性值2, ... 屬性名n : 屬性值n };
在對(duì)象直接量中,屬性名與屬性值之間通過(guò)冒號(hào)進(jìn)行分隔,屬性值可以是任意類型的數(shù)據(jù),屬性名可以是 JavaScript 標(biāo)識(shí)符,或者是字符串型表達(dá)式。屬性于屬性之間通過(guò)逗號(hào)進(jìn)行分隔,最后一個(gè)屬性末尾不需要逗號(hào)。
示例1
下面代碼使用對(duì)象直接量定義兩個(gè)對(duì)象。
var o = { //對(duì)象直接量 a : 1, //定義屬性 b : true //定義屬性 } var o1 = { //對(duì)象直接量 "a" : 1, //定義屬性 "b" : true //定義屬性 }
示例2
屬性值可以是任意類型的值。如果屬性值是函數(shù),則該屬性也稱為方法。
var o = { //對(duì)象直接量 a : function () { //定義方法 return 1; } }
示例3
如果屬性值是對(duì)象,可以設(shè)計(jì)嵌套結(jié)構(gòu)的對(duì)象。
var o = { //對(duì)象直接量 a : { //嵌套對(duì)象 b : 1 } }
示例4
如果不包含任何屬性,則可以定義一個(gè)空對(duì)象。
var o = {} //定義一個(gè)空對(duì)象直接量
使用 Object.create
Object.create 是 ECMAScript 5 新增的一個(gè)靜態(tài)方法,用來(lái)創(chuàng)建一個(gè)實(shí)例對(duì)象。該方法可以指定對(duì)象的原型和對(duì)象特性。具體用法如下:
Object.create(prototype, descriptors)
參數(shù)說(shuō)明如下:
prototype:必須參數(shù),指定原型對(duì)象,可以為 null。
descriptors:可選參數(shù),包含一個(gè)或多個(gè)屬性描述符的 JavaScript 對(duì)象。屬性描述符包含數(shù)據(jù)特性和訪問(wèn)器特性,其中數(shù)據(jù)特性說(shuō)明如下。
value:指定屬性值。
writable:默認(rèn)為 false,設(shè)置屬性值是否可寫(xiě)。
enumerable:默認(rèn)為 false,設(shè)置屬性是否可枚舉(for/in)。
configurable:默認(rèn)為 false,設(shè)置是否可修改屬性特性和刪除屬性。
訪問(wèn)器特性包含兩個(gè)方法,簡(jiǎn)單說(shuō)明如下:
set():設(shè)置屬性值。
get():返回屬性值。
示例1
下面示例使用 Object.create定義一個(gè)對(duì)象,繼承 null,包含兩個(gè)可枚舉的屬性 size 和 shape,屬性值分別為 "large" 和 "round"。
var newObj = Object.create (null, { size : { //屬性名 value : "large", //屬性值 enumerable : true //可以枚舉 }, shape : { //屬性名 value : "round", //屬性值 enumerable : true //可以枚舉 } }); console.log(newObj.size); //large console.log(newObj.shape); //round console.log(Object.getPrototypeOf(newObj)); //null
示例2
下面示例使用 Object.create 定義一個(gè)與對(duì)象直接量具有相同原型的對(duì)象。
var obj = Object.create(Object.prototype, { //繼承Obj.prototype原型對(duì)象 x : { value : undefined, //屬性值 writable : true, //可寫(xiě) configurable : true, //可以配置 enumerable : true //可以枚舉 } }); console.log("obj.prototype = " + Object.getPrototypeOf(obj)); //"obj.prototype =[object, Object]" Object.getPrototypeOf() 函數(shù)可獲取原始對(duì)象的原型。如果要獲取對(duì)象的屬性描述符,可以使用 Object.getOwnPropertyDescriptor() 函數(shù)。
示例3
下面示例定義一個(gè)對(duì)象,使用訪問(wèn)器屬性 b 來(lái)讀寫(xiě)數(shù)據(jù)屬性 a。
var obj = Object.create(Object.prototype, { a : { //數(shù)據(jù)屬性a writable : true, value : "a" }, b : { //訪問(wèn)器屬性b get : function () { return this.a; }, set : function (value) { this.a = value; }, } }); console.log(obj.a); //"a" console.log(obj.b); //"a" obj.b = 20; console.log(obj.b); //20
“javascript不使用new能夠創(chuàng)建對(duì)象嗎”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
標(biāo)題名稱:javascript不使用new能夠創(chuàng)建對(duì)象嗎
本文URL:http://aaarwkj.com/article42/ijhphc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站設(shè)計(jì)、域名注冊(cè)、ChatGPT、動(dòng)態(tài)網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)