91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

JavaScript 對象創建的3種方法分別是什么

發布時間:2021-11-12 17:22:59 來源:億速云 閱讀:140 作者:柒染 欄目:開發技術

本篇文章給大家分享的是有關JavaScript 對象創建的3種方法分別是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

前言:

JavaScript中,對象是一組有屬性名和屬性值組成的無序集合,對象的創建可以通過對象字面量、new 關鍵字 和Object.create()函數來創建。

1、對象字面量

let obj = {}  // 空對象
let obj2 = {a:1, b:2}

let obj3 = {" hel": "wold"}  // 屬性名如果有空格,可以用字符串字面量作為屬性名

2、new 關鍵字創建對象

使用 new 關鍵字后面調用構造函數,創建一個新的對象

let o = new Object(); // 內置的構造函數

let m = new Math();

let a = new Array();

let d = new Date();

function Person(){  //自定義構造函數

}
let person = new Person()

3、使用 Object.create() 創建對象

let o = Object.create({x:1, y:2});
console.log(o.x+o.y) //3

新對象o 將繼承 {x:1, y:2} ,屬性x和y稱為繼承屬性, 如果傳入的參數是null,則這個對象不會繼承任何對象。被繼承的對象又稱之為“原型”。

Object.create(null)

4、 使用擴展操作符:...

ES2018新增了擴展操作符...,將已有的對象屬性復制到新的對象中

let foo  = {x:1, y:2}
let bar  = {z:3}

let zoo = {...foo, ...bar}

console.log(zoo) // {x:1, y:2, z:3}

需要注意的幾點:

  • 擴展操作符只擴展對象的自有屬性,繼承屬性不支持擴展

  • 如果擴展對象和被擴展的對象有相同名字的屬性,屬性的值由后面的對象決定

5、使用Object.assign()方法

assign 可以把一個對象的屬性復制到另一個對象, assign 接收兩個或多個參數,第一個參數為目標對象,第二個及后續參數為來源對象,函數將把來源對象的屬性復制到目標對象,并返回目標對象。

let foo  = {x:1, y:2}
let bar  = {z:3}

let zoo = {}

let obj = Object.assign(zoo, foo, bar)

console.log(zoo)  // {x:1, y:2, z:3}

console.log(obj===zoo) // true

另外補充兩個ES6中新增的對象特性

6、簡寫屬性

如果想創建多個變量名和對應值組合成的對象,原來需要像傳統對象字面量語法構建對象

let x=1, y =2;
let o = {x:x, y:y}

console.log(o) // {x:1, y:2}

ES6之后可直接簡寫屬性,省去分號和屬性名

let o2 = {x, y}

console.log(o2) // {x:1, y:2}

7、簡寫方法

在對象中定義方法時,ES6以前需要,定義方法時需要像定義普通屬性一樣,通過函數表達式定義方法

let point={
    x:1,
    y:2,

    area: function(){
        return this.x*this.y
    }
}

console.log(point.area()) //2

ES6之后可以省略冒號和function關鍵字,以一種簡單的方式來定義對象的方法。

let point2={
    x:1,
    y:2,

    area(){
        return this.x*this.y
    }
}

console.log(point2.area()) //2

以上就是JavaScript 對象創建的3種方法分別是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

太保市| 焦作市| 瓦房店市| 西和县| 北宁市| 枝江市| 静海县| 大兴区| 焦作市| 乐清市| 侯马市| 梅州市| 南康市| 建德市| 东明县| 建湖县| 上虞市| 渭南市| 枝江市| 金阳县| 蓬溪县| 桃园县| 密山市| 长岛县| 乌拉特后旗| 仁布县| 谢通门县| 武邑县| 信丰县| 腾冲县| 峨边| 六枝特区| 南木林县| 尖扎县| 泸定县| 金秀| 梓潼县| 志丹县| 洛浦县| 泾阳县| 凤山县|