var Calculator = function (eq) {//这里可以声明私有成员var eqCtl = document.getElementById(eq);return {// 暴露公开的成员add: function (x, y) {var val = x + y;eqCtl.innerHTML = val;}};};
每次调用的时候new一下,不过这样每个实例都独立存在于内存中。
var calculator = new Calculator(‘eq‘);calculator.add(2, 2);
(function () {// ... 所有的变量和function都在这里声明,并且作用域也只能在这个匿名闭包里// ...但是这里的代码依然可以访问外部全局的对象}());
之前说过()内的function属于函数表达式,可以执行。
function ($, YAHOO) {// 这里,我们的代码就可以使用全局的jQuery对象了,YAHOO也是一样} (jQuery, YAHOO));
var blogModule = (function () {var my = {}, privateName = "博客园";function privateAddTopic(data) {// 这里是内部处理代码}my.Name = privateName;my.AddTopic = function (data) {privateAddTopic(data);};return my;} ());
感谢@汤姆大叔 的《深入理解JavaScript系列》指导我学习!
原文:http://www.cnblogs.com/ltchronus/p/3534933.html