引用类的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一块儿。数据结构
对象是某个特定引用类型的实例。新对象是使用new操做符后跟一个构造函数来建立的。构造函数自己就是一个函数,只不过该函数是出于建立新对象的目的而定义的。函数
var person=new Object();
这行代码建立了Object
引用类型的一个新实例,而后把该实例保存在了变量person
中。使用的构造函数是Object
,它只为新对象定义了默认的属性和方法。ECMAScript提供了不少原生引用类型。spa
建立Object
实例的方式:code
第一种,使用new操做符后跟Object构造函数,以下对象
var person=new Object(); person.name="breeze"; person.age="20";
另外一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式ip
var person={ name:"breeze", age:20 }
对象字面量是对象定义的一种简写形式,目的在于简化建立包含大量属性的对象的过程。字符串
在使用对象字面量语法时,属性名也可使用字符串,以下string
var person={ "name":"breeze", "age":20 }
这个例子建立了一个对象,包含两个属性:name和age,但这里的数值属性名会自动转换成字符串,另外,使用对象字面量语法的时候,也能够留花括号而后自定义属性和方法,例如io
var person={}; person.name="breeze"; person.age=20;
注意点:对象字面量语法,更推荐在只考虑对象属性名的可读性时使用function
虽然可使用前面任何一种方法来定义对象,可是对象字面量也是向函数传递大量参数的首选方式,例如
function dispalyInfo(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) } dispalyInfo({ name:"breeze", age:20 }) //name:breeze //age:20
在这个例子中,函数displayInfo( )接收一个名为args的参数,这个参数可能带有名为name和age的属性,也可能啥也没有,在这个函数内部,咱们经过typeof
操做符来检测每一个属性是否存在,而后基于相应的属性来构建出要显示的信息。咱们调用这个函数时,所使用的时对象字面量语法来指定不一样的数据。
注:这种传参模式最适合须要向函数传入大量可选参数的情形。
通常来讲,访问对象属性都是用的点表示法,不过也可使用方括号来访问对象的属性。在使用方括号语法时,应该将要访问的属性以字符串的形式放在方括号中,例子以下
alert(person.name) alert(person["name"])
从功能上,两种方法没有区别,但方括号语法的主要优势是能够经过变量来访问属性,例如
var person={ "name":"breeze", "age":20 } var propertyName="name"; alert(person[propertyName]); //"breeze"