引用类型的值 (对象) 是引用类型的一个实例. 引用类型有时候也被称为对象定义, 因为它们描述的是一类对象所具有的属性和方法.
对象是某个特定引用类型的实例. 新对象是使用 new 操作符后跟一个构造函数来创建的. 构造函数本身就是一个函数, 只不过该函数是出于创建新对象的目的而定义的.
- // 创建了 Object 引用类型的一个新实例, 然后把该实例保存在了变量 person 中
- // 使用的构造函数是 Object, 它只为新对象定义了默认的属性和方法.
- var person = new Object();
大致地把 JavaScript 对象划分成 "引用类型","基本包装类型" 和 "内置对象" 三块内容.
JavaScript 引用类型
一, Object 类型
创建 Object 实例的方式有两种:
(1) 使用 new 操作符后跟 Object 构造函数
var person = new Object(); person.name = "Nicholas"; person.age = 29;
(2)使用对象字面量表示法
var person = { name : "Nicholas", age : 29 }; var person1 = {}; // 与 new Object()相同 person1.name = "Nicholas"; person1.age = 29;
在通过对象字面量定义对象时, 实际上不会调用 Object 构造函数;
在考虑对象属性名的可读性时使用字面量语法;
对象字面量也是向函数传递大量可选参数的首选方式.
// 函数 displayInfo()接受一个名为 args 的参数. // 这个参数可能带有一个名为 name 或 age 的属性, 也可能这两个属性都有或者都没有. function displayInfo(args) { var output = ""; if (typeof args.name == "string"){ output += "Name:" + args.name + "\n"; } if (typeof args.age == "number") { output += "Age:" + args.age + "\n"; } alert(output); } displayInfo({ name: "Nicholas", age: 29 }); displayInfo({ name: "Greg" });
最好的做法 是对那些必需值使用命名参数, 而使用对象字面量来封装多个可选参数.
访问对象属性
(1)使用点 (.) 表示法
alert(person.name); //"Nicholas"
(2)使用方括号 ([]) 表示法, 可以通过变量 来访问属性
alert(person["name"]); //"Nicholas"
除非必须使用变量来访问属性, 否则建议使用点表示法.
二, Array 类型
数组的创建方法, 数组的检测, 以及数组常用的操作方法, 详情可参看《[ES6] 操作数组的常用方法有这些就够了》.
三, Date 类型
Date 对象的创建, Date 类型的静态方法以及实例对象的常用方法, 详情可参看《[JS 基础] JavaScript 引用类型之 Date 对象的常用方法》.
四, RegExp 类型
有关正则表达的定义, RegExp 对象的属性与方法, 正则表达式中常用的各种字符和元字符等, 详情可参看《[JS 基础] JavaScript 引用类型之 RegExp 类型》.
五, Function 类型
每个函数都是 Function 类型的实例, 而且都与其他引用类型一样具有属性和方法. 由于函数是对象, 因此函数名实际上也是一个指向函数对象的指针, 不会与某个函数绑定.
有关函数的定义, 函数声明与函数表达式的区别, 函数的使用, 函数的属性与方法等,《[JS 基础] JavaScript 引用类型之 Function 类型》.
六, 基本包装类型
为了便于操作基本数据类型, ECMAScript 还提供了 3 个特殊的引用数据类型: Boolean,Number 和 String.
在实际中, 我们每读取一个基本数据值的时候, 后台就会创建一个对应的基本包装类型对象, 从而让我们能够调用一些方法操作这些数据.
有关 3 个特殊的引用数据类型: Boolean,Number 和 String 的概念, 对象的创建, 注意事项, 以及以基本类型的区别可参看《[JS 基础] JavaScript 引用类型之基本包装类型》.
来源: http://www.jianshu.com/p/0a5299bedf77