JavaScript对象是属性的集合, 属性表现为常说的键值对, 当属性的值是function的时候,称为对象的方法。
设对象o有方法m,调用此方法的方式为o.m()。
从以下代码可以看到, strings是有属性和方法的。
var s = "hello world";
var word = s.substring(s.indexOf(" ") + 1, s.length);
Strings不是对象类型, 为什么会拥有属性?
无论什么时候, 只要访问string的属性, JavsScript会使用new String(args)利用原始类型的string产生一个对象类型。
这个对象会继承string的方法, 用来访问对象的属性, 一旦属性访问结束, 刚刚创建的对象类型的string将被丢弃。
对Numbers和Booleans来说, 如果要访问他们的属性或者方法, 也使用了同样的机制。
同为原始类型的null与undefined并不适用此方法。 如果仍想访问他们的属性,你会得到一个TypeError。
var s = "test";
s.len = 4;
var t = s.len;
打印t得到的运行结果是undefined。 第二行的代码创建了临时String对象, 将4赋值给临时对象的属性len, 然后这个临时对象被丢弃。
第三行代码从原始的string s又创建了新的String对象, 然后将对象的len属性的值赋予t, 但是这个属性是不存在的, 所以结果得到了undefined。
从演示可以看出strings, numbers, boolean可以像对象一样让用户访问其属性或者方法。但是如果要对属性进行设置, 这样的行为就会被忽略。
因为变化发生在临时对象上,并不持久。
在访问string, number还有boolean的属性产生的临时对象称为wrapper objects, 很少有需要区分原始类型与他们的wrapper对象的时候。
通常情况下只需要知道他们和对象的区别, 还有他们的属性是只读的, 而且不能够定义新的属性。
wrapper对象是可以手动产生的。
var s = "test", n = 1, b = true;
var s_w = new String(s);
var n_w = new Number(n);
var b_w = new Boolean(b);
必要的时候JavaScript会将wrapper对象转换为原始类型, 所以以上的s_w, n_w, b_w "大部分" 情况下与s, n, b有同样的表现。
使用 == 比较原始类型与其wrapper对象会得到true。
使用 === 会得到false。
使用typeof也会得到不同的结果。
分享到:
相关推荐
Kafka The Definitive Guide Real-Time Data and Stream Processing at Scale 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
本书《Kafka: The Definitive Guide》由Neha Narkhede、Gwen Shapira和Todd Palino编写,由O'Reilly Media出版社出版,首次发行于2017年9月。这本书为Apache Kafka的初学者以及希望深入了解和利用Kafka的中级用户...
JavaScript The Definitive Guide 5th 权威指南 第五版 英文 教材 非常经典的javascript学习资料
Gardner -- The Definitive Guide to Pylons -- 2008 -- code.7z
The Definitive Guide to Django - Web Development Done Right(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 ...
### 《Juneau -- The Definitive Guide to Jython -- 2010》关键知识点概览 #### 核心概念:Jython简介 - **定义**:Jython是一种能够运行在Java平台上的Python解释器,它使得开发者能够在Java虚拟机(JVM)上执行...
《JavaScript - The Definitive Guide 4th Edition》是一本权威的JavaScript编程指南,由David Flanagan撰写。这本书深入浅出地介绍了JavaScript的核心概念、语法和应用,是开发者必备的参考书籍之一。作为第四版,...
《Spark The Definitive Guide-201712》是大数据处理领域中一本非常重要的参考资料,由知名数据工程师及作者Bill Karwin 和 Databricks 的团队共同编写。这本书全面覆盖了Apache Spark的核心概念、技术和最佳实践,...
### 关于《The Definitive Guide to Jython—Python for the Java Platform》的知识点解析 #### 一、Jython简介 Jython 是一种开放源代码的实现方式,它将 Python 这种高级、动态且面向对象的脚本语言无缝集成到 ...
Kafka The Definitive Guide Real-Time Data and Stream Processing at Scale 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Kafka The Definitive Guide Real-time data and stream processing at scale 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...
**JavaScript The Definitive Guide**,也被称为"犀牛书",是JavaScript编程领域的一本经典著作,由David Flanagan撰写。中文第四版是针对这个备受赞誉的指南的最新中文翻译,旨在帮助中国读者深入理解和掌握...
JavaScript The Definitive Guide JavaScript The Definitive Guide
《JavaScript: The Definitive Guide, 5th Edition》是JavaScript学习领域中一本经典的参考书,由David Flanagan撰写,全面且深入地介绍了JavaScript语言。这本书面向已经有一定编程基础的读者,旨在帮助他们掌握...
Automotive Ethernet - The Definitive Guide - 车载以太网(42章全),全网唯一的word版本,与书籍排版一致,可编辑复制。
### 关于《ARM Cortex-M3 的终极指南》的知识点概览 #### 一、书籍概述与定位 本书《ARM Cortex-M3 的终极指南》旨在为硬件工程师与软件工程师提供一个全面且易于理解的学习资源,专注于 ARM Cortex™-M3 处理器。...