复习JavaScript 4

全面解析Module模式 复习


基本用法

  1. var Calculator = function (eq) {
  2. //这里可以声明私有成员
  3. var eqCtl = document.getElementById(eq);
  4. return {
  5. // 暴露公开的成员
  6. add: function (x, y) {
  7. var val = x + y;
  8. eqCtl.innerHTML = val;
  9. }
  10. };
  11. };

每次调用的时候new一下,不过这样每个实例都独立存在于内存中

  1. var calculator = new Calculator(‘eq‘);
  2. calculator.add(2, 2);

1、匿名闭包

  1. (function () {
  2. // ... 所有的变量和function都在这里声明,并且作用域也只能在这个匿名闭包里
  3. // ...但是这里的代码依然可以访问外部全局的对象
  4. }());

之前说过()内的function属于函数表达式,可以执行。

2、全局变量在模块中的使用

  • 全局变量传入模块中
    全局变量可以作为参数传入匿名函数中
  1. function ($, YAHOO) {
  2. // 这里,我们的代码就可以使用全局的jQuery对象了,YAHOO也是一样
  3. } (jQuery, YAHOO));
  • 模块中声明全局变量
  1. var blogModule = (function () {
  2. var my = {}, privateName = "博客园";
  3. function privateAddTopic(data) {
  4. // 这里是内部处理代码
  5. }
  6. my.Name = privateName;
  7. my.AddTopic = function (data) {
  8. privateAddTopic(data);
  9. };
  10. return my;
  11. } ());

感谢@汤姆大叔 的《深入理解JavaScript系列》指导我学习!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。