No fun, no fun at all
function Player(name) {
this.name = name;
this.score = 0;
}
Player.prototype.addPoints = function(points) {
this.score += points;
};
Player.prototype.save = function() {
localStorage.name = this.name;
localStorage.score = this.score;
};
Player.prototype.restore = function() {
this.name = localStorage.name;
this.score = localStorage.score;
};
function initGame() {
var myPlayer = new Player();
myPlayer.restore();
myPlayer.addPoints(1000);
myPlayer.save();
}
document.addEventListener('DOMContentLoaded', initGame);
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
...
<section id="profile">
<p>
<span id="name">{{ name }}</span>
<span id="score">{{ score }}</span>
</p>
</section>
...
<section id="setting">
function View(id) {
this.element = document.getElementById(id);
}
View.prototype.populate = function(data) {
Mustache.to_html(this.element, data);
};
View.prototype.hide = function() {
this.element.style.display = 'none';
};
document.addEventListener('DOMContentLoaded', function() {
var myProfile = new View('profile');
var p = new Player("mike");
p.addPoints(100);
myProfile.populate(p);
});
function Controller(view, model) {
this.view = view;
this.model = model;
}
Controller.prototype.playGame = function() {
this.model.restore();
this.view.populate(this.model);
this.model.addScore(1000);
this.endGame();
};
Constroller.prototype.endGame = function() {
this.view.populate(this.model);
this.model.save();
};
var gameController = new Controller(new Player(), new View('profile'));
gameController.playGame();
function Router() {
this.player = new Player();
this.profileView = new View('profile');
this.gameController = new Controller(this.profileView, this.player);
}
Router.prototype.route = function(route) {
if (route === 'play')
gameController.playGame();
} else {
console.log('Unrecognized route');
}
};
document.addEventListener('DOMContentLoaded', function() {
var myRouter = new Router();
myRouter.route('play');
});