我最近在考虑设计模式,而且我有一个关于我尚未遇到的问题的想法(我确定它存在),所以我试图制作它,令我惊讶的是它比我想象的要容易。我认为这很酷,所以我想和你分享。
//pass this object a function, and it adds its
//biological and technological distinctiveness to itself
var snowman = {
snowballs: [],
addsnow: function(snow) {
this.snowballs.push(snow);
},
getsnow: function(index) {
con(this.snowballs[index]);
}
}
function squareArea(x, y) {
return x * y;
}
function circleArea(r) {
return Math.PI * 2 * r;
}
snowman.addsnow(squareArea);
snowman.addsnow(circleArea);
console.log( snowman.snowballs[0](5,3) );//15
console.log( snowman.snowballs[1](3) );//18 or so
snowman.getsnow(0);
您认为它可能具有哪些实际用途?您如何看待物体蚕食其他物体的想法?
答案 0 :(得分:1)
这是一个糟糕的模式。基本上你给方法一个非人类可读的名字。你不妨写下这样的函数:
糟糕的做法示例:
function x1(A,B){
// DO SOMETHING
}
function x2(A){
// DO SOMETHING ELSE
}
将它粘贴到人类可读的命名空间无济于事。
但是,它可能是Command模式的第一个代码部分;)请参阅objection.command