**函数:JavaScript中定义函数的方式有两种:
1.
function 函数名([参数列表]){
函数体;//此定义方式使函数可以先调用后定义
}
2.
var 函数名=function([参数列表]){
函数体;//此种方法定义的函数只能先定义后调用
}
另外匿名函数语法:
(
function([参数列表]){
函数体;
}
)([实参]);
如:(
function (n){
console.log("此月份为"+n)
}
) (8);
**JavaScript自定义对象:(对象是拥有属性和方法的数据)
JavaScript自定义对象方式有以下七种:直接创建方式,对象初始化器方式,构造函数方法,
prototype原型方式,混合的构造函数/原型方式,动态原型方式和工厂模式,这里为大家介绍常用的五种:
1.直接创建方式
创建语法:var 对象变量名=new Object();
对象变量名 . 属性名=属性值;
对象变量名 . 方法名=function([参数列表]){
函数体;
}
调用方法:调用属性–对象变量名 . 属性名;调用方法:对象变量名 . 方法名([参数列表]);
2.对象初始化器方式:
创建语法:var 对象变量名={
属性名1:属性值1,
属性名2:属性值2,
方法名1:function([参数列表]){
函数体;
}
}
调用方法:调用属性–对象变量名 . 属性名;调用方法:对象变量名 . 方法名([实参列表]);
3.prototype原型方式
注意:在声明一个新的函数后,该函数就会拥有一个prototype的属性,通过该属性可以为对象(在JavaScript中函数也是对象)添加新的属性和方法
创建语法:function 构造方法名(){ //构造方法名首字母要大写
}
构造方法名.prototype.属性名=属性值;
构造方法名.prototype.函数名=function([参数列表]){
函数体;
}
调用方法:var 对象名=new 构造方法名();
对象名 . 属性名//调用属性值
对象名 . 函数名([实参列表])//调用函数
此方式的优点为:使定义的函数和构造方法分离,代码整洁;缺点:不便于为属性动态赋值
4.构造函数方式
创建语法:function 构造函数名([参数列表]){
this.属性名=属性值;
this.函数名=function([参数列表]){
函数体;
}
}
调用方法:var 对象名=new 构造函数名([实参列表]);
对象名 . 属性名//调用属性值
对象名 . 函数名([实参列表])//调用函数
此方法的缺点:将函数定义在构造函数体中,代码比较杂乱;优点:便于动态为属性赋值
5.混合的构造函数/原型方式
此方法结合构造函数方式和prototype原型方式的优点,使代码简便
创建语法:function 构造方法名([参数列表]){
this.属性名=属性值;
}
构造方法名.prototype.函数名=function([参数列表]){
函数体;
}
调用方法:var 对象名=new 构造函数名([实参列表]);
对象名 . 属性名//调用属性值
对象名 . 函数名([实参列表])//调用函数