2015-10-01 26 views
0

目前我開始使用JS ECMA6爲我的個人網絡應用程序 ,但我不確定使用符號 ,即如何使用它?ECMA6 Symbols primitive

我相信,它們是作爲唯一ID的令牌。但我不確定它在Web應用程序開發中的用法。

我目前剛剛接觸此標準,請提供您的建議。

+2

見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol – guest271314

+1

還有http://www.2ality.com/2014/12/es6-symbols.html,它提供了一些非常實用的示例。 – CodingIntrigue

+0

如果您沒有找到任何需求,請不要使用它們。但是,爲你的對象定義自定義迭代器可能會很有用,所以你可以使用'Symbol.iterator'。 – Bergi

回答

0

符號啓用對象狀態的訪問控制。符號允許屬性由字符串(如在ES5中)或符號鍵入。符號是一種新的原始類型。用於調試的可選描述參數 - 但不是身份的一部分。符號是獨一無二的(像gensym),但不是私有的,因爲它們通過像Object.getOwnPropertySymbols這樣的反射功能暴露出來。

var MyClass = (function() { 

    // module scoped symbol 
    var key = Symbol("key"); 

    function MyClass(privateData) { 
    this[key] = privateData; 
    } 

    MyClass.prototype = { 
    doStuff: function() { 
     ... this[key] ... 
    } 
    }; 

    return MyClass; 
})(); 

var c = new MyClass("hello") 
c["key"] === undefined 

它可以是referred here。 這裏有幾個環節有很好的解釋例子。(正如在評論部分已經提到。)