引言:
在面向对象的世界中,过程和数据是一个经常被使用的表达方式。对象,通过方法的形式包含着过程,而闭包则是在过程中以环境的形式包含了数据,因此,只要是用面向对象思想实现的东西,基本上用闭包的思想也能实现。下面,咱们看一则实例,分别使用面向对象形式来实现的写法和使用闭包形式的写法。
面向对象的写法
传统写法之一:
var cat = {
name :
'mimi',
shut :
function(){
console.log(name +
'喵喵!');
}
}
cat.shut();
cat.shut();
cat.shut();
传统写法二:
var cat =
function () {
this.name =
'mimi';
}
cat.prototype.shut =
function () {
console.log(name +
'喵喵!');
}
var Cat =
new cat();
Cat.shut();
Cat.shut();
Cat.shut();
闭包的写法
var cat =
function () {
this.name =
'mimi';
return {
shut :
function () {
console.log(name +
'喵喵!');
}
}
};
var cat2 = cat();
cat2.shut();
cat2.shut();
cat2.shut();