天天看點

ES6: Symbol

Symbol是新增的一種資料類型,它用于生成唯一的标志

Symbol執行個體

執行個體一個Symbol:

其中括号内寫的是對這個變量的描述

簡單應用

比如你在班級裡,可能有兩個人都叫李狗蛋,用一個對象來記錄他們的分數:

const students = {
	'王建國' : { Chinese: 78, English: 65, math: 82 },
	'李狗蛋' : { Chinese: 84, English: 56, math: 63 },
	'李狗蛋' : { Chinese: 43, English: 55, math: 71 },
}
           

對其進行列印,隻會得到一個李狗蛋的成績:

ES6: Symbol

這個問題就可以用Symbol來解決:

const students = {
	[Symbol('王建國')] : { Chinese: 78, English: 65, math: 82 },
	[Symbol('李狗蛋')] : { Chinese: 84, English: 56, math: 63 },
	[Symbol('李狗蛋')] : { Chinese: 43, English: 55, math: 71 },
}
           
ES6: Symbol

注意

1️⃣ 在對象中定義屬性名時,像上面的例子一樣,需要使用計算屬性( […] )的方式來定義

2️⃣ 對象的屬性名為Symbol定義的不能周遊(比如不能使用for in循環)

可以使用 Object.getOwnPropertySymbols() 方法,該方法會傳回一個給定對象自身的所有 Symbol 屬性的數組:

const symStudents = Object.getOwnPropertySymbols(students);
console.log(symStudents);
           
ES6: Symbol

繼續閱讀