Javascript的对象:
自定义对象(逻辑处理)
预定义对象:
内置对象(逻辑处理)
浏览器对象(与DOM结合,这些对象可对网页元素对象进行操控)
Javascript对象的创建使用构造函数来创建的
new 构造函数();
自定义对象的创建:
1.直接创建自定义对象
var 对象名={属性:属性值,属性2:属性值2…}
var student = {
name: "Tom",
sex: "man",
age: 25,
"study": function () {
alert("I like studying");
}
}
document.write(student.name);
document.write(student.sex);
document.write(student["name"]); //还可以使用数组的方式输出
2.通过自定义的构造函数创建对象
构造函数与一般函数的区别:是否使用new运算符
function Student(name,sex,age){
this.name=name; //this指针
this.sex=sex;
this.age=age;
study=function(){ //在对象中,属性名前面没var
alert("I like studying");
}
}
var stu=new Student("Tom","man",25);
var stu2=new Student("Jim","man",24);
stu2.study();
如果构造函数定义了多个属性和方法,每次实例化对象,都会增加内存的需求,通过prototype属性解决这个问题
prototype属性是Javascript中每个函数(包括构造函数)都有的一个属性
object.prototype.name=value;
object:构造函数名
name:要添加的方法名或属性名
value:添加的属性值或执行的方法体
function Student(name,sex,age){
this.name=name; //this指针
this.sex=sex;
this.age=age;
}
Student.prototype.study=function(){
alert("I like studying");
}
var stu=new Student("Tom","man",25);
stu.study(); //因为Javascript是解释型语言,上面的prototype属性只作用于这个新疆变量
3.通过内置的Object对象创建对象
var student=new Object();
student.name="Tom";
student.study=function(){
alert("I like studying");
}
student.study();
专门用于对象的语句
1.for in 语句
这是专门用于遍历对象的循环语句
格式:
for(变量 in 对象){
}
输出 属性值 时,使用数组的格式输出,对象名[属性名]
var student={user:"Loli",sex:"woman",age:23}
for(var example in object){
document.write(object[example]);
}
2.with语句
避免重复引用对象名
with(对象名){
}
var student={name:"Tom",age:25}
with(student){
document.write(name+age);
}