<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] >[success] # Symbol全局私有屬性 ~~~ 假設你想'在同一個文件2個對象中使用同一個Symbol屬性',或者說'在2個js文件的對象中使用同一個Symbol屬性' 跨越文件或代碼來追蹤'Symbol'是很困難并且易錯的。 為此'ES6'為了這種情況出了一個屬性'Symbol.for()'方法來定義共享的'Symbol'屬性,'Symbol.for()'方法 僅接受'單個字符串類型的參數',作為目標'Symbol'的標識符,同時此參數也會成為該'Symbol'的描述信息。 例如: ~~~ ~~~ // 創建一個全局的Symbol私有屬性 let uid = Symbol.for("uid") // 在對象中使用這個uid私有屬性 let object = { [uid]: '12345' } console.log(object[uid]) // "12345" console.log(uid) // "Symbol(uid)" ~~~ <br/> >[success] ## Symbol.for() 注冊全局Symbol ~~~ 'Symbol.for()'方法首先會搜索'全局Symbol注冊表',看是否存在一個鍵值為 "uid" 的'Symbol'。如果存在, 該方法會'返回這個已存在的Symbol',否則,會創建一個新的'Symbol',并使用該鍵值將其記錄到全局'Symbol' 注冊表中,然后'返回這個新的Symbol'。這就意味著此后使用同一個鍵值去調用'Symbol.for()'方法都將會 '返回同一個Symbol',就像下面這個例子: ~~~ ~~~ // 創建一個全局的Symbol let uid = Symbol.for("uid") // 在對象中使用這個uid私有屬性 let object = { [uid]: "12345" } console.log(object[uid]) // "12345" console.log(uid) // "Symbol(uid)" // 查看全局Symbol注冊表中是否有uid,如果有就使用現有的,如果沒有就創建新的Symbol let uid2 = Symbol.for("uid") console.log(uid === uid2) // true console.log(object[uid2]) // "12345" console.log(uid2) // "Symbol(uid)" ~~~ ~~~ 上面例子中,'uid'與'uid2'包含同一個'Symbol',因此它們可以互換使用。第一次調用'Symbol.for()'創建 了這個'Symbol',而第二次調用則從'全局Symbol注冊表'中將其檢索了出來。 ~~~ <br/> >[success] ## Symbol.keyFor() 根據私有屬性名稱,搜索全局Symbol注冊表 ~~~ 你可以使用'Symbol.keyFor()'方法在'全局Symbol注冊表'中根據'Symbol'檢索出對應的鍵值,例如: ~~~ ~~~ let uid = Symbol.for("uid") console.log(Symbol.keyFor(uid)) // "uid" let uid2 = Symbol.for("uid") console.log(Symbol.keyFor(uid2)) // "uid" let uid3 = Symbol("uid") console.log(Symbol.keyFor(uid3)) // undefined,因為全局Symbol注冊表中沒有uid3,uid3是局部的 ~~~ ~~~ 使用Symbol uid 與 uid2 都返回了鍵值 "uid" ,而Symbol uid3 在全局符號注冊表中并不存在,因此沒有關聯 的鍵值, Symbol.keyFor() 方法只會返回 undefined 。 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看