在javascript中,对象是拥有属性和方法的数据
本次主要讨论五种定义对象的方法
1.直接定义
创建语法:
var 对象变量名 = new Object();
对象变量名.属性1 = 属性值1;
…;
对象变量名. 属性N = 属性值N;
对象变量名. 方法1 = function([参数列表]){
方法体
}
…;
对象变量名. 方法N = function([参数列表]){
方法体
}
代码示例:
var student = new Object();
student.name="Lucy";
student.eat=function(){
console.log(this.name+"正在吃东西");
}
student.eat();
2.初始化定义:
创建语法:
var 对象变量名={
属性1:属性值1,
...,
属性N:属性值N,
方法1:function([参数列表]){
方法体
},
...,
方法N:function([参数列表]){
方法体
}
}
注意:
1.属性的定义用:(英文冒号)
2.对象的属性和方法之间用,(英文逗号)隔开,最后一个不加
代码示例:
var student = {
name:"Tim", //注意属性的定义用:
age:12,
eatting:function(){
console.log(this.name+"正在吃东西");
},
running:function(){
console.log(this.name+"正在跑步");
}
};
student.eatting();
student.running();
3.构造函数式
创建语法:
function 构造函数([参数列表]){
this.属性1=属性值;
...;
this.属性N=属性值;
this.方法1=function([参数列表]){
方法体
};
...;
this.方法N=function([参数列表]){
方法体
};
}
var 对象名 = new 构造函数([参数列表]);
代码示例:
function Student(name){
this.name=name;
this.eatting=function(){
console.log(this.name+"正在吃东西");
};
}
var stu = new Student("Lily");
stu.eatting();
4.原型式
创建语法:
function 对象创建器(){
};
对象创建器.prototype.属性=属性值;
对象创建器.prototype.方法=function([参数列表]){
方法体
};
var 对象名 = new 对象创建器([参数列表]);
代码示例:
function Student(){
}
Student.prototype.name="Kitty";
Student.prototype.eatting=function(){
console.log(this.name+"正在吃东西");
};
var stu = new Student();
stu.eatting();
5.混合式
由于构造方法式中创建对象时添加属性很容易,但是创建方法要在构造方法内部容易导致方法混乱;原型式创建对象时添加属性比较麻烦,创建方法相对容易。所以结合两者的优点就有了混合式。
创建语法:
function 构造函数([参数列表]){
this.属性1=属性值;
...;
this.属性N=属性值;
};
}
对象创建器.prototype.方法=function([参数列表]){
方法体
};
var 对象名 = new 构造函数([参数列表]);
代码演示:
function Student(name){
this.name=name;
}
Student.prototype.eatting=function(){
console.log(this.name+"正在吃东西");
};
var stu = new Student("Linda");
stu.eatting();