design.js
//模块式开发
var myNamespace = (function () {
var myPrivateVar = 0;
var myPrivateMethod = function (foo) {
console.log(foo);
};
return {
myPublicVar : "foo",
myPublicFunction : function (bar) {
myPrivateVar++;
myPrivateMethod(bar);
}
};
})();
//原型模式
var myCar = {
name: "Ford Escort",
drive: function () {
console.log("Weeeee, i'm driving...");
},
panic: function () {
console.log("Wait. How do you stop this thing");
}
};
var yourCar = Object.create(myCar);
console.log(yourCar.name);
//命令模式
var CarManager = {
requestInfo: function (model, id) {
return "The information for " + model + "with ID" + id + "is foobar";
},
buyVehicle: function (model, id) {
return "You have successfully purchasedItem" + id + ",a " + model;
},
arrangeViewing: function (model, id) {
return "You have successfully booked a viewing of" + model + " " + id;
},
execute:function (name) {
return CarManager[name] && CarManager[name].apply(CarManager, [].slice.call(arguments, 1));
}
}
CarManager.execute("requestInfo", "Ferrari","12350");