站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        javascript不使用new可以創(chuàng)建對(duì)象嗎

        javascript不使用new運(yùn)算符也可以創(chuàng)建對(duì)象,方法:1、使用“var objectName={屬性名1:值1,屬性名2:值2,…};”語(yǔ)句;2、使用“Object.create(原型對(duì)象,descriptors)”語(yǔ)句。

        javascript不使用new可以創(chuàng)建對(duì)象嗎

        本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

        javascript不使用new創(chuàng)建對(duì)象的方法

        對(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è)置屬性值是否可寫。

        • 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,  //可寫         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)讀寫數(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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚洲精品无码成人片在线观看| 久久亚洲美女精品国产精品| 亚洲精品无码永久在线观看 | 九九99精品久久久久久| 亚洲国产人成精品| 国产精品国产AV片国产| 99re66热这里只有精品| 亚洲乱码精品久久久久..| 久久93精品国产91久久综合| 97精品国产自在现线免费观看| 大伊香蕉精品视频在线导航| 无码人妻精品一区二区在线视频| 久久久久久国产精品无码下载| 成人免费精品网站在线观看影片| 91精品国产91久久久久福利| 日产精品久久久久久久性色| 亚洲国产精品自产在线播放| 久久久久人妻一区精品| 精品国产免费一区二区三区| 国产高清国内精品福利99久久| 免费91麻豆精品国产自产在线观看 | 国产精品久久国产精麻豆99网站| 色国产精品一区在线观看| 亚洲国产精品一区二区三区久久| 精品国产午夜福利在线观看| 国产精品一区二区三区99| 亚洲综合一区二区精品导航| 九九热在线精品视频| 国产精品莉莉欧美自在线线| 国产精品扒开腿做爽爽爽视频 | 久久99精品国产麻豆蜜芽| 国产精品成人一区二区| 91亚洲精品自在在线观看| 久久九九亚洲精品| 久久777国产线看观看精品| 国产精品久久影院| 日本人精品video黑人| 热re99久久精品国产99热| 午夜精品视频在线| www夜片内射视频日韩精品成人| 亚洲精品综合一二三区在线|