diff --git a/深入探索 JavaScript/JavaScript 类型.md b/深入探索 JavaScript/JavaScript 类型.md index 6681dd2..7218c59 100644 --- a/深入探索 JavaScript/JavaScript 类型.md +++ b/深入探索 JavaScript/JavaScript 类型.md @@ -38,4 +38,13 @@ ## 装箱转换 -- 每一种基本类型 Number、String、Boolean、Symbol 在对象中都有对应的类,所谓装箱转换,正是把基本类型转换为对应的对象,它是类型转换中一种相当重要的种类 \ No newline at end of file +- 每一种基本类型 Number、String、Boolean、Symbol 在对象中都有对应的类,所谓装箱转换,正是把基本类型转换为对应的对象,它是类型转换中一种相当重要的种类 +- 全局的 Symbol 函数无法使用 new 来调用,但我们仍可以利用装箱机制来得到一个 Symbol 对象,我们可以利用一个函数的 call 方法来强迫产生装箱 + +```javascript +var symbolObject = (function(){ return this; }).call(Symbol("a")); + +console.log(typeof symbolObject); //object +object console.log(symbolObject instanceof Symbol); //true +console.log(symbolObject.constructor == Symbol); //true +``` \ No newline at end of file