引用类型-----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中最常见的引用类型了. 对象是某个引用类型的实例,如何创建一个实例,也就是 ...
随机推荐
- Ionic在windows下的环境配置难题
具体的配置方法网上有很多,可以参考http://my.oschina.net/JeeChou/blog/219699?fromerr=k1hPtBUs,但问题还是会有,我总结的主要有以下几个方面: 1 ...
- tbl.js div实现的表格控件,完全免费,no jquery
html上现在有比较好用的表格控件是datatable,但是编辑.按钮等部分是收费的,只有基础功能免费.而且尺寸发生变化时需要手工刷新等繁琐操作较多.所以我开发一个免费的供大家使用. 本项目已用于“虚 ...
- [个人翻译]GitHub指导文件(GitHub Guides[Hello World])
[个人翻译]GitHub指导文件(GitHub Guides[Hello World]) Mirage_j个人翻译,欢迎转载,最好标明出处http://www.cnblogs.com/mirageJ/ ...
- SQL 数据库基本知识
SQL:Structured Quety Language SQL SERVER是一个以客户/服务器(c/s)模式访问.使用Transact-SQL语言的关系型数据库管理子系统(RDBMS) DBMS ...
- C++ 头文件系列 (algorithm)
简介 algorithm头文件是C++的标准算法库,它主要应用在容器上. 因为所有的算法都是通过迭代器进行操作的,所以算法的运算实际上是和具体的数据结构相分离的 ,也就是说,具有低耦合性. 因此,任何 ...
- shell编程其实真的很简单(四)
上篇我们学习了shell中条件选择语句的用法.接下来本篇就来学习循环语句.在shell中,循环是通过for, while, until命令来实现的.下面就分别来看看吧. for for循环有两种形式: ...
- js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))
( function(){…} )() ( function (){…} () ) 是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达 ...
- 一篇文章搞定css3 3d效果
css3 3d学习心得 卡片反转 魔方 banner图 首先我们要学习好css3 3d一定要有一定的立体感 通过这个图片应该清楚的了解到了x轴 y轴 z轴是什么概念了. 首先先给大家看一个小例子: 卡 ...
- js-tab选项卡
说道tab选项卡,顾名思义,就是切换不同内容分类,想必学过前端的都知道,tab有很多方法可以实现,最近刚跟师傅学了一种,感觉很简便,很实用哦. 一.先看一下结果 二.可以根据图来布局,首先上面标 ...
- EF操作扩展之async
EF的操作类网上很多类,我只是把我在平时项目中的类进行一些改进和扩展,扩展了部分同步和异步的EF操作 接口 /// <summary> /// 接口数据操作基础类 /// </sum ...