目录
4.toLocalString()方法:返回对象的本地字符串表示
5.propertyIsEnumerable()方法:判断是否是该对象的自有属性
6.hasOwnProperty()方法:判断属性是否是继承的
一.对象的介绍
1.对象的概念
对象时一种复合型数据类型,可以将很多数据集中在一个单元中。对象通过属性来获取数据集中的数据,也可以通过方法来实现数据的某些功能
2.对象的属性
在JavaScript中,将包含在对象内部的变量称为对象的属性
设置对象的属性:
对象名.属性名
设置对象的属性值:
pen.color="red";
pen.price=20;
pen.name="钢笔";
取对象的属性值:
var color=pen.color;
var price=pen.price;
var name=pen.name;
3.对象的方法
对象是一些数据的集合,在JavaScript中,函数也是一种特殊的数据,因此,对象中也可以包含一些函数,这些函数称为对象的方法
对象的方法的定义及调用:
var pen={
writ:document.write("wo shi sha bi"),
name:"sb"
}
pen.writ();
上述代码段输出 wo shi sha bi
二.创建对象
1.使用构造函数创建内置对象
使用new运算符来调用构造函数创建对象
例如:
var myobject=new Object();
var arr1=new Array();
var arr2=new Array(3);
var arr3=new Array(1,2,3,4);
2.直接创建自定义对象
var 对象名={属性名1:属性值1,属性名2:属性值2,...};
肥肠煎蛋,不作赘述
3.使用自定义构造函数创建对象
先自定义一个构造函数,然后像使用new调用内置构造函数一样调用即可
例如:
function pen(name,color)
{
this.name=name;
this.color=color;
}
var pen1=new pen("小钢炮","玫瑰金");
document.write(pen1.name+"<br>");
document.write(pen1.color);
上述代码段输出 小钢炮
玫瑰金
三.对象的属性
1.设置对象的属性
对于系统内置对象,在其构造函数中就已经设置了对象的属性,只有自定义对象需要设置属性
(1)在创建对象的同时设置对象的属性,如:一.2
(2)在创建对象构造函数时设置对象的属性如:二.3
(3)先创建一个空对象,再设置对象属性
例如:
var pen=new Object;
pen.name="小钢炮":
pen.color="土豪金";
document.write(pen1.name+"<br>");
document.write(pen1.color);
上述代码段输出 小钢炮
土豪金
2.存取对象属性
详见:一.2
3.属性的枚举
语法:
for(变量 in 对象名)
例如:
var pen=new Object();
pen.name="小钢炮";
pen.color="远峰蓝";
for(var i in pen)
{
document.write(pen[i]+"<br>");
}
上述代码段输出 小钢炮
远峰蓝
4.删除对象的属性
语法:
delete 对象名.属性名;
删除之后,该属性将不再属于该对象,若再次读取该属性,将返回undefined
例如:
var pen=new Object();
pen.name="小钢炮";
pen.color="远峰蓝";
delete pen.name;
document.write(pen.name+"<br>");
for(var i in pen)
{
document.write(pen[i]+"<br>");
}
上述代码段输出 undefined
远峰蓝
四.构造函数
1.创建简单的构造函数
详见:二.3
2.创建有默认值的构造函数
例如:
function pen(name,color)
{
this.name=name;
if(this.color==undefined)
this.color="夕阳红";
else
this.color=color;
}
var pen1=new pen("大钢炮");
for(var i in pen1)
document.write(pen1[i]+"<br>");
上述函数输出 大钢炮
夕阳红
3.创建有方法的构造函数
与对象的属性一样,在构造函数里也需要使用this运算符来初始化对象的方法
例如:
function write(str)
{
document.write(str);
}
function pen(name,color)
{
this.name=name;
this.color=color;
this.write=write;
}
var pen1=new pen("大钢炮","夕阳红");
document.write(pen1.name+"<br>");
document.write(pen1.color+"<br>");
pen1.write("wo shi sha bi");
上述函数输出 大钢炮
夕阳红
wo shi sha bi
五.对象的原型与继承
1.继承与覆盖
对象可以继承类的所有方法和属性,但如果对象的属性和方法内容与类中的不一样时,对象的方法和属性会覆盖类中的方法和属性
2.原型对象
原型对象是由构造函数所定义的,构造函数创建的对象拥有原型对象的所有属性与方法
3.修改原型对象
在js中,所有函数都有一个prototype属性,该属性可以引用一个原型对象,通过该属性,可以修改原型对象的属性
例如:
function pen(color,name)
{
this.name=name;
this.color=color;
}
pen.prototype.price="100";
var pen1=new pen("土豪金","小钢炮");
for(var i in pen1)
{
document.write(pen1[i]+"<br>");
}
上述函数输出 小钢炮
土豪金
100🔪
4.储存对象属性
只有在读取对象属性时,才会使用到原型对象,而在储存对象属性时,是不需要使用原型对象的
例如:
function pen(color,name)
{
this.name=name;
this.color=color;
}
var pen1=new pen("土豪金","小钢炮");
pen1.price="100刀";//储存对象属性
document.write(pen1.price+"<br>");
document.write(pen.constructor.prototype.price);//读取对象属性
上述函数输出 100刀
undefined
六.Object对象
1.创建Object对象
new Object();
new Object(value);
例如:
var ob1=new Object();
var ob2=new Object(1.12345);
var ob3=new Object(false);
var ob4=new Object("str");
document.write(typeof(ob1)+"<br>");
document.write(ob2.toFixed(3)+"<br>");
document.write(ob3.valueOf()+"<br>");
document.write(ob4.charAt(2));
上述函数输出 object
1.123
false
r
2.constructor属性:返回对象的构造函数
例如:
var ob1=new Object();
var ob2=new Object(1.12345);
var ob3=new Object(false);
var ob4=new Object("str");
document.write(ob1.constructor+"<br>");
document.write(ob2.constructor+"<br>");
document.write(ob3.constructor+"<br>");
document.write(ob4.constructor+"<br>");
上述函数输出 function Object() { [native code] }
function Number() { [native code] }
function Boolean() { [native code] }
function String() { [native code] }
3.toString方法:对象的字符串表示
toString()方法可以输出对象、查看对象的值
例如:
var ob1=new Object();
var ob2=new Object(1.12345);
var ob3=new Object(false);
var ob4=new Object("str");
document.write(ob1.toString()+"<br>");
document.write(ob2.toString()+"<br>");
document.write(ob3.toString()+"<br>");
document.write(ob4.toString()+"<br>");
上述函数输出 [object Object]
1.12345
false
str
4.toLocalString()方法:返回对象的本地字符串表示
与toString()方法类似,只是返回的字符串被格式化成为适合本地的表示法
不作赘述
5.propertyIsEnumerable()方法:判断是否是该对象的自有属性
用法:
对象名.propertyIsEnumerable("属性名")
如果是对象的自有属性,返回true,否则,返回false
例如:
var ob1=new Object();
ob1.sb="wo shi sb";
document.write(ob1.propertyIsEnumerable("sb")+"<br>");
document.write(ob1.propertyIsEnumerable("nb"));
上述函数输出 ture
false
6.hasOwnProperty()方法:判断属性是否是继承的
与propertyIsEnumerable()方法类似
不作赘述
7.isPrototypeOf()方法:判断是否是原型对象
语法:
原型对象.isPrototypeOf(待判断对象)
例如:
var ob1=new Object();
ob1.sb="wo shi sb";
var ob2=new Array();
document.write(Object.prototype.isPrototypeOf(ob1)+"<br>");
document.write(Array.prototype.isPrototypeOf(ob1));
上述代码段输出 true
false
8.valueOf()方法:返回对象的原始值
六.1中的样例使用了该方法
这里不作赘述
七.其它系统对象(在使用中熟悉,不作细讲)
1.Arguments对象
2.布尔对象
3.日期对象
4.数字对象
5.函数对象
6.Error对象
7.数组对象
......
---------------------完结撒花!!!-------------------