Symbol.for() 方法
使用Symbol()方法可以建立一個Symbol型別的值。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let s = Symbol(); let one = Symbol("螞蟻部落"); let two = Symbol("螞蟻部落"); console.log(one == two);
即便是鍵值相同兩個Symbol型別的值也是不相同的。
更多關於Symbol的內容可以參閱ES2015 Symbol一章節。
使用Symbol.for()方法也可以建立一個Symbol型別的值,但是此方法和Symbol()的一個重要區別是,它不會重複建立具有相同鍵的值,也就是說此方法在建立一個值之前,首先會搜尋是否已經具有指定鍵的Symbol型別的值,如果有則返回這個Symbol值,否則新建立一個Symbol值。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let one = Symbol.for("螞蟻部落"); let two = Symbol.for("螞蟻部落"); console.log(typeof one); console.log(one == two);
第一次呼叫Symbol.for()方法會建立一個鍵值為"螞蟻部落"的Symbol型別的值。
第二次呼叫的時候會搜尋是否已經存在以"螞蟻部落"為鍵的Symbol型別的值,如果存在就返回這個Symbol值。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let one = Symbol.for(); let two = Symbol.for(); console.log(typeof one); console.log(one == two);
不傳遞引數也是同樣的道理。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let one = Symbol("螞蟻部落"); let two = Symbol.for("螞蟻部落"); console.log(one == two);
Symbol.for()建立的值會被登記在全域性環境中供搜尋,而Symbol()建立的值不會,所以Symbol.for("螞蟻部落")依然會新建立一個Symbol值,而不是返回Symbol("螞蟻部落")建立的值。
相關文章
- [Javascript] Symbol vs Symbol.forJavaScriptSymbol
- Java中parse方法,ValueOf方法,toString方法Java
- Python例項方法、類方法、靜態方法Python
- js includes方法 和 filter方法JSFilter
- Java的方法靜態方法Java
- show()方法和hide()方法IDE
- 方法
- 徹底理解了call()方法,apply()方法和bind()方法APP
- Python Class 的例項方法/類方法/靜態方法Python
- slideUp()方法和slideDown()方法IDE
- Java方法03:方法的過載Java
- 物件導向2--靜態方法、類方法、屬性方法物件
- javaSE-day04--ArrayList基本用方法、類內定義方法和方法過載、靜態方法static(類的方法)、工具方法(static)的定義和使用Java
- 來看看兩種好玩的方法,擴充套件方法和分部方法套件
- initialize方法與load方法比較
- Java System類,currentTimeMillis方法,arraycopy方法。Java
- jQuery方法原始碼定位簡單方法jQuery原始碼
- 細說equals()方法和hashCode()方法
- prop()方法和attr()方法的區別
- 詳解equals()方法和hashCode()方法
- exitFullscreen() 方法
- Promise then() 方法Promise
- removeProperty() 方法REM
- deleteRule() 方法delete
- getPropertyPriority() 方法
- getPropertyValue() 方法
- javascriptreplaceAll方法JavaScript
- main方法AI
- 字串方法字串
- 方法引用
- Java方法Java
- call() 方法
- 類方法
- Main()方法AI
- 【MyBatis原始碼分析】insert方法、update方法、delete方法處理流程(上篇)MyBatis原始碼delete
- 【MyBatis原始碼分析】insert方法、update方法、delete方法處理流程(下篇)MyBatis原始碼delete
- 方法的過載、可變形參的方法、方法的引數值傳遞機制、遞迴方法遞迴
- jQuery中過濾方法slice()方法如何使用?jQuery