美文网首页
js包装对象

js包装对象

作者: yy小 | 来源:发表于2018-07-22 14:13 被阅读0次

ECMAScript 提供了 3 个特殊的引用类型:Boolean、Number和 String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。包装对象:
包装对象,就是当基本类型以对象的方式去使用时,JavaScript会转换成对应的包装类型,相当于new一个对象,内容和基本类型的内容一样,然后当操作完成再去访问的时候,这个临时对象会被销毁,然后再访问时候就是undefined。number,string,boolean都有对应的包装类型。
number,string,boolean都有对应的包装类型
基本包装类型概述
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据;

var box = 'Mr.Lee';          // 定义一个String字符串;  
var box2 = box.substring(2);     // 截掉字符串前两位;
console.log(box2);          // 输出新字符串;=>.Lee;
// 变量box是一个字符串String类型,而box.substring(2)又说明它是一个对象(只有对象才会调用方法);
console.log('Mr.Lee'.substring(3));  // 直接通过字符串值来调用方法=>Lee;

引用类型和基本包装类型的主要区别就是对象的生存期;
自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁;
这意味着我们不能在运行时为基本类型值添加属性和方法;
var s1 = 'some text'; // => var s1 = new String('some text');
var s2 = s1.substring(5); // => var s2 = s1.substring(5);
// s1 = null; 销毁这个实例;后台自动执行;

列:
var str = 'hello';
str.number = 10; //假设我们想给字符串添加一个属性number ,后台会有如下步骤
{ 
 var str = new String('hello'); // 1 找到对应的包装对象类型,然后通过包装对象创建出一个和基本类型值相同的对象
  str.number = 10; // 2 通过这个对象调用包装对象下的方法 但结果并没有被任何东西保存
 str =null; // 3 这个对象又被销毁
 }
alert(str.number); //undefined  当执行到这一句的时候,因为基本类型本来没有属性,后台又会重新重复上面的步骤
{ 
 var str = new String('hello'); // 1 找到基本包装对象,然后又新开辟一个内存,创建一个值为hello对象
 str.number = undefined   // 2 因为包装对象下面没有number这个属性,所以又会重新添加,因为没有值,所以值是未定 ;然后弹出结果
 str =null; // 3 这个对象又被销毁
 }

每个对象都有原型。
举例:

//给字符串添加方法  要写到对应的包装对象的原型下才行
var str = 'hello';
String.prototype.last= fuction(){ 
    return this.charAt(this.length);
}; 
str.last(); // 5 执行到这一句,后台依然会偷偷的干这些事
{ 
    var str = new String('hello');// 找到基本包装对象,new一个和字符串值相同的对象,
    str.last();  // 通过这个对象找到了包装对象下的方法并调用 
    str =null; //  这个对象被销毁
}

相关文章

  • js包装对象

    ECMAScript 提供了 3 个特殊的引用类型:Boolean、Number和 String。这些类型与其他引...

  • js 包装对象

    原因由于s是一个字符串,在执行第二行中,s.len = 4;;时生成一个临时对象,临时对象在执行完之后则被销毁。故...

  • JS包装对象

    包装对象 定义 对象是 JavaScript 语言最主要的数据类型,三种原始类型的值——数值、字符串、布尔值——在...

  • js:标准对象/包装对象

    一、在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用...

  • js的包装对象

    在另一篇文章 js的new运算符详解 提到过包装对象,这里详细解释下。 我们之前说string、number 和 ...

  • Javascript面向对象之组件

    高级面向对象 包装对象(13) js基于原型的程序 String Number Boolean 原型链(14) 实...

  • 对象 包装——JS学习笔记

    对象 对象的创建方法 1,(plainObject )对象字面量 | | 对象直接量,var obj={ }, 对...

  • js笔记---包装对象与Boolean对象

    所谓“包装对象”,就是分别与数值、字符串、布尔值相对应的Number、String、Boolean三个原生对象。这...

  • javascirpt包装对象(wrapper object)

    什么是javascript包装对象?在说包装对象之前,我们先简单说一下js的两种数据类型:基本数据类型(primi...

  • JS(十二)对象,包装类(下)

    写在最前面 构造函数内部原理 在函数体最前面隐式的加上this = {} 执行this.xxx = xxx 隐私的...

网友评论

      本文标题:js包装对象

      本文链接:https://www.haomeiwen.com/subject/bovlmftx.html