let str = 'hello world'; str.toString(); // 'hello world' /** * 不知道大家有没有疑惑,变量 str 明明是一个原始值,原始值不是对象,为什么还可以调用方法? * 那是因为 ECMAScript 为了操作原始值,提供了三种特殊引用类型————包装类型: String、Number、Boolean。 * 当在访问 str 的 toString 方法时,会在后台执行以下3步: * 1.创建一个 String 类型的实例 let str = new String('hello world'); * 2.调用实例上的特定方法 let newStr = str.toString(); * 3.销毁实例 str = null; * 这种形为可以让原始值拥有对象的行为。但是,这种行为只存在访问它的那行代码执行期间, * 也就是 str.toString() 这行代码的执行期间,在之后这种行为会被销毁, * 所以说不能给原始值添加属性和方法 * str.a = 'aaa'; * onsole.log(str.a); // undefined */
浙公网安备 33010602011771号