1. 程式人生 > >ES6的原始型別資料——Symbol

ES6的原始型別資料——Symbol

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就是原始值,即基本型別呢?