总结 一下今天的学习内容,七种Javascript自定义对象方式,学了较为常用的五种。
直接创建方式:
创建语法:
var 对象变量名 = new Object();
对象变量名. property1 = value1;
…;
对象变量名. propertyN = valueN;
对象变量名. methodName1 = function([参数列表]){
//函数体
}
…;
对象变量名. methodNameN = function([参数列表]){
//函数体
}
对象初始化器方式:
创建语法:
var 对象变量名 = {
property1 : value1,
property2 : value2,
…,
propertyN : valueN,
methodName1 : function([parameter_list]){
//函数体
},
…,
methodNameN : function([parameter_list]){
//函数体
}
}
构造函数方式:
创建语法:
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([参数列表]){
//函数体
} ;
}
总结:
1、和上面两种方式对比,采用构造函数方式创建对象能够有 效的节省代码;
2、采用构造函数方式创建对象,则this不能省略,这是也普 通函数的区别;
3、采用构造函数方式创建对象,左边的方式更可取,提高了 代码的复用;
prototype原型方式:
创建语法:
function 对象构造器( ){
}
对象构造器.prototype.属性名=属性值;
对象构造器.prototype.函数名 = function([参数列表]){
//函数体
}
混合的构造函数/原型方式
创建语法:
function 对象构造器([参数列表]){
}
对象构造器.prototype.函数名 = function([参数列表]){
//函数体
}
原型式和构造函数式各有优缺点:
原型式:优点——将函数和构造函数进行了分离;缺点——不方便为属性赋值。
构造函数式:缺点——函数和构造函数混合在了一起;优点——方便为属性赋值。
混合式比较好:(构造式和函数式的融合) 使用函数式方法为变量赋值, 用原型式为其丰富算法。