引用类型-----Object
本文章转载至:https://segmentfault.com/a/1190000003984584
关于引用类型的概念:
引用类型:引用类型的值(对象)是引用类型的一个实例;
对象:是某个特定引用类型的实例;
新对象:用new 操作符后跟一个构造函数来创建的;如代码:
var person = new Object();这行代码创建了Object 引用类型的一个新实例,然后把该实例保存在了变量person 中。使用的构造函数是Object()。
创建Object 类型实例的方法
1. 使用new 操作符后跟Object 构造函数;
2. 使用对象自变量表示法;
对于第一种,Object 实例的创建方式如下:
var child = new Object();
child.name = "Oliver";
child.age = 18;
console.log(child.name); //"Oliver"
对于第二种,Object 实例的创建方式如下:
var child = {
name: "Oliver",
age: 18
}
console.log(child.age + " " + child.name); //"18 Oliver"
上面这个例子中,在age:18 之后不能添加逗号,因为age 是这个对象的最后一个属性。(在最后一个属性后面添加逗号,会在IE7 及更早版本和Opera 中导致错误。)
另外,在自变量表示法创建实例的中,属性名也可以使用字符串,如:
var person = {
"name" : "Nicholas",
"age" : 29,
5 : "fdd"
}
console.log(person.name); //"Nicholas"
console.log(person["5"]); //"fdd"
注意!这里如果要访问person 里面的属性名为5 的属性的值,则需要使用方括号语法如:person[5],最好写成person['5']后面会介绍。
另外,这里的5 会被自动转换成字符串"5"。
在使用字面两语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象,如:
var person = {};
person.name = "Oliver";
person.age = 18;
person[5] = "fdd";
这里的var person = {} 跟new Object()相同。
对象字面两也是向函数传递大量可选参数的首选方式,如:
function display(obj){
var output = "";
if (typeof obj["name"] == "string"){
output += "Name: " + obj["name"] + "<br/>";
}
if (typeof obj.age == "number"){
output += "Age: " + obj.age + "<br/>";
}
document.write(output);
}
display({
name:"Oliver",
age:18
})
一般来说方括号语法是在必须使用变量来访问属性的时候才使用。如果这里一定要用方括号语法,那就必须写成这样的形式person["name"]与person.name相同。后面会详述。
访问对象的属性
一般来说主要有两种方法:
点表示法;
方括号语法;
访问对象属性时一般都是使用点表示法。当然也可以使用方括号表示法,如:
person.name;
person["name"];
方括号语法的主要优点是可以通过变量来访问属性,如:
var person = {
name:"Oliver"
}
var propertyName = "name";
console.log(person[propertyName])
在对象里面,name属性可以写成字符串形式"name",如果用方括号语法,一定要注意写成person["name"]
如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。如:
person["first name"] = "Oliver";
因为如果写成person.first name 会报错。
一定要注意的是,除非必须使用变量来访问属性,否则建议使用点表示法。
引用类型-----Object的更多相关文章
- [JS高程]引用类型(Object、Array)
引用类型:Object.Array Object: person.name =>推荐,除非必须使用变量([])来表示 person["name"] 区别:[]可以通过变量 ...
- js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math
数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...
- javascript学习笔记 - 引用类型 Object
引用类型是一种数据结构,也称作对象定义,类似于类的概念. 对象是引用类型的实例. javascript引用类型有:Object, Array, Date, RegExp, Function 使用new ...
- 引用类型--Object类型、Array类型
引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,它描述的是一类对象具有的属性和方法. 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数 ...
- 引用类型-Object类型
创建Object实例的方式有两种. 第一种是使用new操作符后跟Object构造函数 var person = new Object(); person.name = "liao" ...
- javascript学习第三课引用类型object
主要内容: 1.object 是所有类型的基类 实例化对象: 1. var obj = new Object(); 2. var obj = {}; 设置对象属性和方法: obj.name = 'he ...
- JavaScript引用类型-Object类型
创建Object的方式有两种: 第一种:使用new操作符后跟Object操作函数. var person = new Object(); person.name = "wang"; ...
- js中的引用类型-object
- JS 引用类型之Object
引用类型定义: 描述一类对象具有的属性和方法 引用类型Object ,也就是我们常说的对象类型了,这应该是JavaScript中最常见的引用类型了. 对象是某个引用类型的实例,如何创建一个实例,也就是 ...
随机推荐
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- POJ2503(hash)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 41263 Accepted: 17561 Descr ...
- SQL关键字转换大写核心算法实现
1 不跟你多废话 上代码! /// <summary> /// SQL关键字转换器 /// </summary> public class SqlConverter : IKe ...
- Codeforces Round #392 (Div. 2)-758D. Ability To Convert(贪心,细节题)
D. Ability To Convert time limit per test 1 second Cmemory limit per test 256 megabytes input standa ...
- Hadoop权威指南:压缩
Hadoop权威指南:压缩 [TOC] 文件压缩的两个好处: 减少储存文件所需要的磁盘空间 加速数据在网络和磁盘上的传输 压缩格式总结: 压缩格式 工具 算法 文件扩展名 是否可切分 DEFLATE ...
- input中的disabled 和 readonly的区别
1.Readonly只针对input(text / password)和textarea有效, 而disabled对于所有的表单元素都有效, 2.但是表单元素在使用了disabled后,当我们将表单以 ...
- .NET Core 最小化发布
.NET Core 应用最小化独立部署发布,.NET Core 默认应用独立发布,大概占用50m左右的空间,不同的系统大小有所区别. .NET Core 的发布之前我也有所介绍,.NET Core 跨 ...
- 模仿jquery的fileupload插件
仅需要new一个对象,将上传后台的url和点击触发上传的元素id传给对象,就可以自从实现上传 暂不支持IE <html> <body> <a href="#&q ...
- Java IO流学习总结八:Commons IO 2.5-IOUtils
Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...
- Ioc容器BeanPostProcessor-Spring 源码系列(3)
Ioc容器BeanPostProcessor-Spring 源码系列(3) 目录: Ioc容器beanDefinition-Spring 源码(1) Ioc容器依赖注入-Spring 源码(2) Io ...