javascript中的包装类

189 阅读2分钟

前言:JavaScript中有一句经典的名句:《一切皆对象,理解了对象你就理解了javascript》,你真的理解了吗 ???

  1. 回归基础:
  • JavaScript创建一个对象的方式有:

  •   // 1.字面量的方式
      let obj = {
       name:'chw',
       age:16,
       coding:function(){}
      }
      //2.内置构造函数
      let obj1 = new Object({})
      //3.自定义的构造函数
      function Factory(){
       //var this = {} 隐式操作
       this.name = 'chw'
       this.coding = function(){}
       // return this  隐式操作
      }
      let obj3 = new Factory()
      
      
    
  • javascript的数据类型可以分为:原始数据类型(存储简单的数据段),如:Number,String,Boolean,null,undefind,symbol,引用数据类型(多个值构成的对象,存放在内存中):Object(Array,RegExp,Date,Math);只有引用的数据类型才有属性和方法,原始的数据类型不能有属性和方法

2.结合以上的基础,我们回归我们经常操作的字符串属性和方法

let str = 'chw'
let str2 = str.substring(2) // 'w'

以上操作是不是不符合我们一开说的,str 是原始的数据类型,原始数据类型没有方法和属性,但是其实其中的原理是:字符串操作属性和方法的时候会进行短暂的包装类过程,即执行内部的构造函数进行操作,1.根据对应的数据类型进行构造操作:Nunber()、String()、Boolean(),2操作完成后立即销毁

let str2 = str.substring(2) // 'w'  执行如下:
  1.创建一个string类型对象
  2.在实例上调用指定的方法
  3.销毁这个实例
  let str = new String('chw')
  let str2 = str.substring(2)
  str = null 

3.总结

//1.因为有了包装类的过程,原始的数据类型可以当成对象来使用(验证:一切皆对象)
//2.所以原始数据不能自定义属性和方法,
//3.但是可以操作系统内部自带的属性和方法