深入理解js包装类

零到壹度
Freigeben: 2018-04-12 11:21:29
Original
2614 Leute haben es durchsucht

本篇文章给大家分享的内容是深入理解js包装类,有着一定的参考价值,有需要的朋友可以参考一下

说包装类之前我们先看下面这个例子

var str = 'hello'; str.name = 'world'; console.log(str.name);
Nach dem Login kopieren

答案是什么呢?

这不显而易见的吗,上面str都给已经给自己添加了一个属性名为name,值为world,输出出来肯定是world啊!

我想在你看到这段代码的时候,脑子第一时间想到的就是这个!

那么恭喜你,答错了! 值为undefined!

我们知道,js中除了原始值外,其他都是对象,对象可以有自己的属性和方法。(方法就是当属性为函数的时候,我们称之为方法)

那么原始值有没有自己的属性呢;

var str = 'hello'; console.log(str.length) // 6
Nach dem Login kopieren

我们调用字符串length的方法是可以和数组一样打印出来他的个数的。

字符串既然不是对象,为什么会有自己的方法呢?

这是因为我们在我们只要用了str的属性,js就会调用 new String(str)将str包装为对象,这个对象继承了String上面的方法。


这上面全都是String的方法。

但是如果String上面没有你想要的属性呢?

那么js会在String上面创建一个属性,但是,在创建之后,随即销毁.

下面我们再来看这个例子

var str = 'hello'; str.name = 'world'; /* 上面这一步str给他自己设置一个名为name,值为world的属性,于是js就new String(str).name = 'world'; 创建之后,销毁 */ console.log(str.name) /* 这一步 js又new String(str).name 但是没有值, 所以值为undefined, */
Nach dem Login kopieren

同样,number和boolean也是

Das obige ist der detaillierte Inhalt von深入理解js包装类. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!