在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();