浅谈Javascript中的基本封装类型

浅谈Javascript中的基本封装类型
为了方便的基本类型的值的操作,还提供了3个特殊的ECMAscript引用类型:布尔,号码,和字符串。这些类型相似的其他引用类型,本章中介绍的,但他们也有特殊的行为对应的基本类型。事实上,每当一个基本类型是值得一读的背景会产生相应的基本包装类型的一个对象,所以我们可以把一些方法来操作这些数据。以下的例子如下:

复制代码代码如下所示:

一些文本

VaR S2 = s1.substring(2);
变量S1在这个例子中包含一个字符串,这是,当然,一个基本类型的值,而下一行代码调用substring()方法的S1,和返回的结果保存在S2。我们知道基本类型的值不是对象,因此按理他们应该没有方法(虽然他们有方法,像我们希望的那样)。事实上,为了让我们实现这个直观的操作,后台已自动完成一系列的处理。当第二行代码访问S1,访问过程中,是一种阅读模式,阅读,从内存的字符串值。当一个字符串是在读取模式访问,后台会自动完成以下处理。

1。创建字符串类型的实例;

2。指定的方法在实例上调用;

三.破坏这个例子。

以上三个步骤可以想象为ECMAscript代码执行

复制代码代码如下所示:

var =新字符串(一些文本);

VaR S2 = s1.substring(2);

S1 = null;
在这个处理之后,基本字符串值变得与对象相同。此外,上述三个步骤也适用于布尔值和数字类型分别对应的布尔值和数值。

引用类型和基本包装类型之间的主要区别是对象的生命周期。使用new运算符创建的引用类型的一个实例是保存在内存中的流的执行离开当前范围之前,基本包型,自动创建只存在在一行代码执行时刻的物体,然后立即销毁。这意味着我们不能对基本类型的值添加属性和方法时,我们不会再次运行。如下面的例子:

复制代码代码如下所示:

一些文本

颜色红色;

警报(S1颜色);
在这里,第二行试图添加一个颜色属性的字符串s1。然而,当第三行代码来访问S1,其颜色属性丢失。原因是,第二行创建字符串对象被销毁时执行第三行代码。第三行创建自己的字符串对象,和对象没有颜色属性。

当然,可以显示的下降被称为布尔型,数量,和字符串的基本包装类型创建对象。但是,它应该是在绝对必要时再做,因为这样很容易让人们知道他们正在处理的基本包装类型或基本包装类型的值。一种叫的基本包装类型返回对象的一个实例,和基本包装类型的对象转换为布尔值true。

对象构造函数也将返回到相应的基本包装器类型的实例,如工厂方法,基于传入的有价值的类型:

复制代码代码如下所示:

var obj =新的对象(文本);

警报(obj是字符串); / /真的
将字符串传递给对象构造函数将创建字符串的实例,数字参数将获得一个数字实例,而布尔参数将获得布尔实例。

需要注意的是,使用新调用基本包装器类型的构造函数与直接调用相同名称的转换函数不一样:

复制代码代码如下所示:

var值 25 ;

var数字=数字(值);转换函数

警报(型号); / /

var obj =新数(值); / /构造函数

警报(typeof obj); / /对象
在这个例子中,变量数存储在基本型的值为25,和可变对象是数的一个实例。

虽然我们不推荐显式对象来创建基本的包装器类型,但是它们操作基本类型值的能力仍然非常重要,每个基本的打包类型都提供了一种操作相应值的便捷方法。
这是本文的全部内容,希望您能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部