ES6的原始型別資料——Symbol
阿新 • • 發佈:2018-11-29
javascript中原始值,即基本資料型別,像Number,String,Boolean,undefined,Null都是基本型別值,儲存在棧中,但是有個疑問:
Symbol打印出來明明是個函式,具有prototype的屬性,不能例項化的原因是:Symbol是個原始值。但Symbol明明就是個函式的鴨,而且:
Symbol.__proto__ === Function.prototype
//true
Symbol.constructor === Function.prototype.constructor
//true
Object.prototype.toString.call(Symbol)
//"[object Function]"
typeof Symbol
//"function"
typeof Symbol()
//"symbol"
Symbol的原型指向的就是Function的原型,Symbol明明就是Function的例項鴨。
其實JS中檢測原始值的方法就是用typeof,那麼typeof Symbol返回的就是function型別。typeof Symbol(),好嘛!!!返回symbol型別。
在Javascript中函式即物件,是引用型別,為啥Symbol就是原始值,即基本型別呢?