//第十一章 symbol
//es6引入的一種新的原始資料型別,表示獨一無二的值,為了防止物件的屬性名衝突
//js七大資料型別:undefined,null,boolean,number,string,object,symbol(前五種為基本資料型別)
let s = symbol(); //不能使用new命令
let s2 = symbol('s2'); //可以傳入乙個描述符作為引數,用作轉化為字串時區分不同symbol
console.log(typeof s); //symbol
console.log(s,s2); //symbol() symbol(s2)
console.log(symbol('a') === symbol('a'));
//false(相同描述符的symbol也是不一樣的)
//sumbol作為屬性名時,必須放在方括號之內
let o = ;
console.log(o[s]); //a
console.log(o.s); //undefined (symbol屬性名不能放在.號後面,會被識別成字串)
如果已經登記了以key為描述符的symbol,則返回該symbol,否則新建乙個symbol返回
let s3 = symbol.for('s2');
console.log(s3 === s2); //false
let s4 = symbol.for('s2');
console.log(s3 === s4); //true (只有以symbol.for(key)的方式建立的symbol才會被登記,且是全域性的
// symbol()方式建立的不會被登記,)
返回已經被登記的symbol的key
console.log(symbol.keyfor(s3));//s2
console.log(symbol.keyfor(s2));//undefined
es6 學習筆記(二)Symbol
symbol類似於enum,可以起到識別符號的作用。主要可以應用在一下場景。1.可以作為屬性名 var mysymbol symbol var a a.mysymbol hello a mysymbol undefined a mysymbol hello 要注意symbol值作為物件屬性名時,不能...
modern c design 第十一章
本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...
第十一章3
第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...