一、什么是引用类型
1.引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型常被称作类,但这种叫法并不妥当,因为javascript从技术上讲,虽然是面向对象的语言,但它不具备传统面向对象语言所支持的类和接口等基本结构。
注意:引用类型和java等语言中的类看起来很相似,但实际上并不是相同的概念,我们可以借助类来理解引用类型的一些概念,但记得不要等同起来。
2.对象:引用类型的值被称为对象,它是引用类型的一个实例。
3.创建对象的方法:
使用new操作符后面跟一个构造函数来创建
var person = new Object();
二、Object引用类型
1.创建Object实例的方法
1)使用new操作符+构造函数
var obj = new Object();
person.name='zhangsan';
person.age=18;
------------------------------------------------------------
如果不给构造方法Object()传递参数,则可以省略后面的一对大括号,
即:var obj = new Object;//有效,但不推荐
------------------------------------------------------------
2)使用对象字面量
var person={
name:'zhangsan',
age=18;
};
或者:
var person={
'name':'zhangsan';
'age':18
};
--------------------------------------------------------------------------------------
1.在对象字面量中,使用逗号分割不同的属性,但最后一个属性后面不要逗号,否则会在IE7-和Opera中报错.
2.属性名既可以加引号,也可以不加。
--------------------------------------------------------------------------------------
3)使用对象字面的特殊形式
var person={};
person.name='zhangsan';
person.age=18;
留空花括号,则可以定义只包含默认属性和方法的对象
2.对象字面量定义的方式好处:
- 代码量少,给人封装数据的感觉。
- 在定义的对象包含大量属性时,首选字面量定义的方式。
- 向函数传递大量可选参数的首选方式
function show(args){
var print='';
if(typeof args.name == String){
print='Name:'+args.name+'/n';
}
if(typeof args.age == Number){
print+='Age:'+args.age+'/n';
}
alert(print);
}
3..对象的访问
(1)点表示法*
通常使用点表示法访问对象的属性
person.name;
person.age;-
(2)方括号表示法
person['name'];
person['age'];该方法的优点: a.可以通过变量来访问对象的属性 var propertyName='name'; person[property]; b.如果属性名中含有会导致语法错误的字符或属性名使用的是关键字或保留字,也可以使用方括号表示法。 person['first name']//可以 person.first name//不可以
(3) 通常除非需要通过变量来访问属性,否则推荐使用点表示法
4.Object的实例对象对象的属性和方法:
属性:
constructor:保存着用于创建当前对象的函数(即构造方法)
方法:
1.hasOwnproperty(propertyName):用于检查propertyName属性在当前对象的实例中是否存在(不包括原型)
-----------------------------------------------
注意:propertyName必须以字符串的形式给出,比如:
o.hasOwnProperty('name');
-----------------------------------------------
2.isprototypeOf(object):用于检查传入的对象是否是当前对象的原型(父类)
3.propertyIsEnumerable(propertyName):用于检查给定的属性能否用for-in语句来枚举。
--------------------------------------------------------------------------------------
1.存在于原型链中的属性不能枚举,既不是实例对象本身的属性,而是从该对象的原型继承来的属性。
2.propertyName以字符串的形式指定
--------------------------------------------------------------------------------------
4.toLocalString();返回对象的字符串表示,该字符串与执行环境的地区对应
------------------------------------------------------------------------------------
通常用来向用户展示信息,而不参与基本的js运算,因为它会随机器的地理差异呈现不同的结果
------------------------------------------------------------------------------------
5.toString();返回对象的字符串表示。
6.valueOf();返回对象的字符串、数值、或布尔值表示。通常与toString()方法的返回值相同。