Hi, and thanks for having this forum. I am reading the book entitled
beginning node.js by Basarat Ali Syed
<http://www.amazon.com/s/ref=dp_byline_sr_book_1?ie=UTF8&field-author=Basarat+Ali+Syed&search-alias=books&text=Basarat+Ali+Syed&sort=relevancerank>.
There is a code example that I am having a little trouble understanding:
function printableMessage() {
var message = 'hello';
function setMessage(newMessage) {
if(!newMessage) throw new Error('cannot set empty message');
message = newMessage;
}
function getMessage() {
return message;
}
function printMessage() {
console.log(message);
}
return {
setMessage: setMessage,
getMessage: getMessage,
printMessage: printMessage
};
}
// Pattern in use
var awesome1 = printableMessage();
awesome1.printMessage();
var awesome2 = printableMessage();
awesome2.setMessage('A new message for you.');
awesome2.printMessage();
"
I understand everything except the syntax in the return section. Why is
the label the same as function name in each case in the return section.
Why is a return necessary to execute the function at all? This code was
designed to illustrate the concept of "revealing modules"? I would be very
grateful if anyone can elaborate on how this example reveals modules. Are
each of the functions a "module"? If this is so, am I to assume that the
return function is responsible for revealing them?
It seems like the functions are methods of the printableMessage function?
Anyway, sorry for asking such a nube question. I really want to
understand node.js, not just hack into to develop. - Thanks very much.
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/edcca2f5-4742-419a-a17b-42657c6cd97f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.