99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

TypeScript Symbols

2022-04-21 09:21 更新

自ECMAScript 2015起,symbol成為了一種新的原生類型,就像numberstring一樣。

symbol類型的值是通過(guò)Symbol構(gòu)造函數(shù)創(chuàng)建的。

let sym1 = Symbol();

let sym2 = Symbol("key"); // 可選的字符串key

Symbols是不可改變且唯一的。

let sym2 = Symbol("key");
let sym3 = Symbol("key");

sym2 === sym3; // false, symbols是唯一的

像字符串一樣,symbols也可以被用做對(duì)象屬性的鍵。

let sym = Symbol();

let obj = {
    [sym]: "value"
};

console.log(obj[sym]); // "value"

Symbols也可以與計(jì)算出的屬性名聲明相結(jié)合來(lái)聲明對(duì)象的屬性和類成員。

const getClassNameSymbol = Symbol();

class C {
    [getClassNameSymbol](){
       return "C";
    }
}

let c = new C();
let className = c[getClassNameSymbol](); // "C"

眾所周知的Symbols

除了用戶定義的symbols,還有一些已經(jīng)眾所周知的內(nèi)置symbols。 內(nèi)置symbols用來(lái)表示語(yǔ)言內(nèi)部的行為。

以下為這些symbols的列表:

Symbol.hasInstance

方法,會(huì)被instanceof運(yùn)算符調(diào)用。構(gòu)造器對(duì)象用來(lái)識(shí)別一個(gè)對(duì)象是否是其實(shí)例。

Symbol.isConcatSpreadable

布爾值,表示當(dāng)在一個(gè)對(duì)象上調(diào)用Array.prototype.concat時(shí),這個(gè)對(duì)象的數(shù)組元素是否可展開(kāi)。

Symbol.iterator

方法,被for-of語(yǔ)句調(diào)用。返回對(duì)象的默認(rèn)迭代器。

Symbol.match

方法,被String.prototype.match調(diào)用。正則表達(dá)式用來(lái)匹配字符串。

Symbol.replace

方法,被String.prototype.replace調(diào)用。正則表達(dá)式用來(lái)替換字符串中匹配的子串。

Symbol.search

方法,被String.prototype.search調(diào)用。正則表達(dá)式返回被匹配部分在字符串中的索引。

Symbol.species

函數(shù)值,為一個(gè)構(gòu)造函數(shù)。用來(lái)創(chuàng)建派生對(duì)象。

Symbol.split

方法,被String.prototype.split調(diào)用。正則表達(dá)式來(lái)用分割字符串。

Symbol.toPrimitive

方法,被ToPrimitive抽象操作調(diào)用。把對(duì)象轉(zhuǎn)換為相應(yīng)的原始值。

Symbol.toStringTag

方法,被內(nèi)置方法Object.prototype.toString調(diào)用。返回創(chuàng)建對(duì)象時(shí)默認(rèn)的字符串描述。

Symbol.unscopables

對(duì)象,它自己擁有的屬性會(huì)被with作用域排除在外。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)