构造函数 及 闭包
(function(){
function stadus(name,time,age,xg,money){
this.name=name
this.time=time
this.age=age
this.xg=xg
this.money=money
this.say=function(){
console.log('我的偶像是'+name+','+'他今年'+age+'岁,'+'他'+xg+','+money+'战斗力'+'————更新时间:'+time)
}
}
var p1=new stadus('孙悟空','2021.8.23',99999999,'所向披靡,战无不胜,斩妖除魔,被称为斗战胜佛','10000000000亿')
p1.say()
})();
(function(){
function people(name,time,age,xg,money){
var pepl=new Object()
pepl.name=name;
pepl.time=time;
pepl.age=age;
pepl.xg=xg;
pepl.money=money;
console.log(pepl)
return function(){
var html='我的偶像是'+pepl.name+','+'他今年'+pepl.age+'岁,'+'他'+pepl.xg+','+pepl.money+'战斗力'+'————更新时间:'+pepl.time
return console.log(html)
}
}
var pep_1=people('孙悟空','2021.8.23',99999999,'所向披靡,战无不胜,斩妖除魔,被称为斗战胜佛','10000000000亿');
pep_1()
})();
后面我又把这两个函数合并了一下:
(function(){
function people(name,time,age,xg,money){
var pepl=new Object()
pepl.name=name;
pepl.time=time;
pepl.age=age;
pepl.xg=xg;
pepl.money=money;
return function(){
var html='我的偶像是'+pepl.name+','+'他今年'+pepl.age+'岁,'+'他'+pepl.xg+','+pepl.money+'战斗力'+'————更新时间:'+pepl.time
return console.log(html)
}
}
var pep_1=new people('孙悟空','2021.8.23',99999999,'所向披靡,战无不胜,斩妖除魔,被称为斗战胜佛','10000000000亿');
pep_1()
var pep_2=new people('牛魔王','2021.8.23',99999999,'所向披靡,战无不胜,斩妖除魔,被称为斗战胜佛','10000000000亿');
pep_2()
})();
麻烦大神看下我写的这两个栗子,有什么区别 ?
我写闭包的时候,突然想到构造函数也可以实现这个功能,就试了一下。完了之后可以正常输出。于是发现问题:
这有什么区别?
经过一系列探究得出结论:
只需要操作一个对象时用闭包,例如工具类;
需要对多个对象进行操作时用构造函数,例如功能性插件。
所以上述代码:
特别耗内存(虽然我对内存没概念)
完结,如有不妥,请指出!