关键词:函数,封装,
定义
把实现相同功能的代码放在一个函数中,以后想实现这个功能,只需要执行这个方法就行了-->函数的封装(低耦合,高内聚)。本质上就是普通函数的封装。
使用方法
var a=function (name,age) {
var obj={};
obj.name=name;
obj.age=age;
obj.createJs=function () {
console.log(this.name+'和'+this.age)
}
return obj;
}
var result1=a('js',18);
var result2=a('jss',18);
result1.createJs();
result2.createJs();
工厂模式的意义:
低耦合,高内聚(减少页面的冗余代码,提高代码的利用率)。
这里不得不提面向对象的特点:类的继承,封装,多态(重载与重写)
关于重载和重写:
重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。
function a(m){console.log(m)};
function a(m,n){console.log(n+n)};
后台语言中有两个同名函数,传递一个参数时,会执行第一个函数,传递两个参数时,会执行第二个函数。(这是我的理解,真正的后台语言不是以这种形式书写的),在JS中后面的同名函数会把前面覆盖掉,所以不存在重载。只有类似于重载的功能,如下:
function m(params) {
if(!params){
return undefined;
}
return params;
}
重写:
function Create(name,age) {
var name='xiaoming';
this.name=name;
this.age=age;
this.createJs=function () {
console.log(this.name+'是'+this.age)
}
}
Create.prototype.test=function () {
console.log(123);
}
var p1=new Create('js',19);
p1.__proto__.test=function () {
console.log(100)
}
p1.test();//100,子重写了父的方法;