中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript不使用new怎么創建對象

發布時間:2022-05-07 14:38:25 來源:億速云 閱讀:125 作者:iii 欄目:大數據

這篇文章主要介紹了javascript不使用new怎么創建對象的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇javascript不使用new怎么創建對象文章都會有所收獲,下面我們一起來看看吧。

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

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

javascript不使用new創建對象的方法

對象直接量

使用直接量可以快速創建對象,也是最高效、最簡便的方法。具體用法如下:

var objectName = {
    屬性名1 : 屬性值1,
    屬性名2 : 屬性值2,
    ...
    屬性名n : 屬性值n
};

在對象直接量中,屬性名與屬性值之間通過冒號進行分隔,屬性值可以是任意類型的數據,屬性名可以是 JavaScript 標識符,或者是字符串型表達式。屬性于屬性之間通過逗號進行分隔,最后一個屬性末尾不需要逗號。

示例1

下面代碼使用對象直接量定義兩個對象。

var o = {  //對象直接量
    a : 1,  //定義屬性
    b : true  //定義屬性
}
var o1 = {  //對象直接量
    "a" : 1,  //定義屬性
    "b" : true  //定義屬性
}

示例2

屬性值可以是任意類型的值。如果屬性值是函數,則該屬性也稱為方法。

var o = {  //對象直接量
    a : function () {  //定義方法
        return 1;
    }
}

示例3

如果屬性值是對象,可以設計嵌套結構的對象。

var o = {  //對象直接量
    a : {  //嵌套對象
        b : 1
    }
}

示例4

如果不包含任何屬性,則可以定義一個空對象。

var o = {}  //定義一個空對象直接量

使用 Object.create

Object.create 是 ECMAScript 5 新增的一個靜態方法,用來創建一個實例對象。該方法可以指定對象的原型和對象特性。具體用法如下:

Object.create(prototype, descriptors)

參數說明如下:

  • prototype:必須參數,指定原型對象,可以為 null。

  • descriptors:可選參數,包含一個或多個屬性描述符的 JavaScript 對象。屬性描述符包含數據特性和訪問器特性,其中數據特性說明如下。

  • value:指定屬性值。

  • writable:默認為 false,設置屬性值是否可寫。

  • enumerable:默認為 false,設置屬性是否可枚舉(for/in)。

  • configurable:默認為 false,設置是否可修改屬性特性和刪除屬性。

訪問器特性包含兩個方法,簡單說明如下:

  • set():設置屬性值。

  • get():返回屬性值。

示例1

下面示例使用 Object.create定義一個對象,繼承 null,包含兩個可枚舉的屬性 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 定義一個與對象直接量具有相同原型的對象。

var obj = Object.create(Object.prototype, {  //繼承Obj.prototype原型對象
    x : {
        value : undefined,  //屬性值
        writable : true,  //可寫
        configurable : true,  //可以配置
        enumerable : true  //可以枚舉
    }
});
console.log("obj.prototype = " + Object.getPrototypeOf(obj));  //"obj.prototype =[object, Object]"
Object.getPrototypeOf() 函數可獲取原始對象的原型。如果要獲取對象的屬性描述符,可以使用 Object.getOwnPropertyDescriptor() 函數。

示例3

下面示例定義一個對象,使用訪問器屬性 b 來讀寫數據屬性 a。

var obj = Object.create(Object.prototype, {
    a : {  //數據屬性a
        writable : true,
        value : "a"
    },
    b : {  //訪問器屬性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怎么創建對象”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“javascript不使用new怎么創建對象”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪洞县| 英山县| 营山县| 海阳市| 黔西县| 阳谷县| 松滋市| 体育| 广丰县| 井陉县| 赣榆县| 新源县| 龙岩市| 京山县| 宜君县| 双流县| 浦县| 茌平县| 泰来县| 南昌县| 梁平县| 上犹县| 青海省| 昌黎县| 乌鲁木齐县| 监利县| 元朗区| 鄱阳县| 东兴市| 陕西省| 屯留县| 沂南县| 泽普县| 武邑县| 繁昌县| 遂溪县| 榆中县| 普陀区| 云和县| 盘锦市| 辽源市|