文章目录
一、直接创建方式1.语法2.实例
二、对象初始化器方式1.语法2.实例
三、构造函数方法1.语法2.实例
四、prototype原型方式1.语法2.实例
五、混合的构造函数/原型方式1.语法2.实例
一、直接创建方式
1.语法
var 对象变量名
= new Object();
对象变量名
. property1
= value1
;
…
;
对象变量名
. propertyN
= valueN
;
对象变量名
. methodName1
= function([参数列表
]){
}
…
;
对象变量名
. methodNameN
= function([参数列表
]){
}
2.实例
<script>
var student
= new Object();
student
.name
= "Tom";
student
.doHomework
= function(){
console
.log(this.name
+"...doHomework....");
}
student
.doHomework();
</script
>
二、对象初始化器方式
1.语法
var 对象变量名
= {
property1
: value1
,
property2
: value2
,
…
,
propertyN
: valueN
,
methodName1
: function([parameter_list
]){
},
…
,
methodNameN
: function([parameter_list
]){
}
}
2.实例
<script>
var student
= {
name
: "Tom",
doHomework
: function(){
console
.log(this.name
+ "...doHomework...");
}
};
student
.doHomework();
</script
>
三、构造函数方法
该方法创建对象能节省代码
1.语法
function 构造函数
([参数列表
]){
this.属性
= 属性值
;
…
this.属性N
= 属性值N
;
this.函数
1 = method1
;
…
this.函数N
= methodN
;
}
function
method1([参数列表
]){
}
…
function
methodN([参数列表
]){
}
或(一般用下面这种,比较节省代码)
function 构造函数
([参数列表
]){
this.属性
= 属性值
;
…
this.属性N
= 属性值N
;
this.函数
1 = function([参数列表
]){
} ;
…
this.函数N
= function([参数列表
]){
} ;
}
2.实例
<script>
function
Student(name
){
this.name
= name
;
this.doHomework
= function(){
console
.log(this.name
+"...doHomework...");
}
}
var student
= new Student("Tom");
student
.doHomework();
</script
>
四、prototype原型方式
在声明一个新的函数后,该函数(在JavaScript中,函数也是对象)就会拥有一个prototype的属性,通过该属性可以为该函数(对象)添加新的属性和方法。 缺点:不便于为属性动态赋值
1.语法
function 对象构造器
( ){
}
对象构造器
.prototype
.属性名
=属性值
;
对象构造器
.prototype
.函数名
= function([参数列表
]){
}
2.实例
<script>
function
Student(){
}
Student
.prototype
.name
="Tom";
Student
.prototype
.doHomework
= function(){
console
.log(this.name
+"...doHomework...");
}
var student
= new Student();
student
.doHomework();
</script
>
五、混合的构造函数/原型方式
构造函数方式:便于动态为属性赋值,但是这种方式将方法也定义在了构造方法体中,使得代码比较杂乱 原型方式:不便于为属性动态赋值,但是这种方式定义的属性和方法实现了分离 所以取长补短——构造函数定义属性,原型方式定义方法。
1.语法
function 对象构造器
([参数列表
]){
}
对象构造器
.prototype
.函数名
= function([参数列表
]){
}
2.实例
<script>
function
Student(name
){
this.name
= name
;
}
Student
.prototype
.doHomework
= function(){
console
.log(this.name
+"...doHomework...");
}
var student
= new Student("Tom");
student
.doHomework();
</script
>
3.以上五种类型执行结果都为