本文章转载至: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相同。后面会详述。

访问对象的属性

一般来说主要有两种方法:

  1. 点表示法;

  2. 方括号语法;

访问对象属性时一般都是使用点表示法。当然也可以使用方括号表示法,如:

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的更多相关文章

  1. [JS高程]引用类型(Object、Array)

    引用类型:Object.Array Object: person.name   =>推荐,除非必须使用变量([])来表示 person["name"] 区别:[]可以通过变量 ...

  2. js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math

    数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...

  3. javascript学习笔记 - 引用类型 Object

    引用类型是一种数据结构,也称作对象定义,类似于类的概念. 对象是引用类型的实例. javascript引用类型有:Object, Array, Date, RegExp, Function 使用new ...

  4. 引用类型--Object类型、Array类型

    引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,它描述的是一类对象具有的属性和方法. 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数 ...

  5. 引用类型-Object类型

    创建Object实例的方式有两种. 第一种是使用new操作符后跟Object构造函数 var person = new Object(); person.name = "liao" ...

  6. javascript学习第三课引用类型object

    主要内容: 1.object 是所有类型的基类 实例化对象: 1. var obj = new Object(); 2. var obj = {}; 设置对象属性和方法: obj.name = 'he ...

  7. JavaScript引用类型-Object类型

    创建Object的方式有两种: 第一种:使用new操作符后跟Object操作函数. var person = new Object(); person.name = "wang"; ...

  8. js中的引用类型-object

  9. JS 引用类型之Object

    引用类型定义: 描述一类对象具有的属性和方法 引用类型Object ,也就是我们常说的对象类型了,这应该是JavaScript中最常见的引用类型了. 对象是某个引用类型的实例,如何创建一个实例,也就是 ...

随机推荐

  1. zoj3823--构造

    题目大意: 在n*n(n<=512)的网格上,从边界某个点出发,经过每个点一次且回到边界上,构造出一种方案使拐弯的数量至少为n*(n-1)-1次. 构造方法:我们可以手算出n=2~6时的方案. ...

  2. 新手初学Redis之基础知识命令

    笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面.像其中的mongodb,redis等等.当初也没有深入的去了解Redis,直到自己前段时间在写一个web ...

  3. 《JAVASCRIPT高级程序设计》DOM扩展

    虽然DOM为XML及HTML文档交互制定了一系列的API,但仍然有几个规范对标准的DOM进行了扩展.这些扩展中,有很多是浏览器专有的,但后来成了事实标准,于是其他浏览器也提供了相同的实现:浏览器开发商 ...

  4. arcpy.mapping-认识arcpy.mapping

    arcpy.mapping-认识arcpy.mapping by 李远祥 ArcMap提供了强大的地图制图功能,在实际的工作中,只要涉及到专题地图和地图册的制作,难免会遇到非常多的出图工作和地图图面元 ...

  5. webAppbuilder微件使用教程3 地理处理微件

    webAppbuilder微件使用教程 --微件使用进阶地理处理微件 By 李远祥 地理处理是GIS解决问题的关键部分,也是其灵魂所在.由于WebAppBuilder框架的限制,用户如果想要非常灵活的 ...

  6. 怎样在chrome中内置扩展,以及一些简单的定制

    本文中chromium 版本为54 参考资料: chromium如何新增extension API以及添加内部扩展 http://slides.com/luyuan/grit#/ 一.嵌入扩展 1.  ...

  7. C语言一维数组转换为二维数组

    一维转二维代码示例: #include <stdio.h> #include <stdlib.h> #define ROW 3 #define COL 2 int main(i ...

  8. C语言 extern学习2 分析

    上一篇文章中,通过头文件声明,而调用有一个特别大的漏洞: 为什么编译器可以链接过来呢,因为默认是extern修饰的,这种类似全局作用域的功能使其可以被调用 继续加强学习: 这一次有两对C文件: fir ...

  9. Vue2.0源码阅读笔记--生命周期

    一.Vue2.0的生命周期 Vue2.0的整个生命周期有八个:分别是 1.beforeCreate,2.created,3.beforeMount,4.mounted,5.beforeUpdate,6 ...

  10. 【原创】python中文编码问题深入分析(二):print打印中文异常及显示乱码问题分析与解决

    在学习python以及在使用python进行项目开发的过程中,经常会使用print语句打印一些调试信息,这些调试信息中往往会包含中文,如果你使用python版本是python2.7,或许你也会遇到和我 ...