A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯超 高级黑马   /  2013-8-30 22:53  /  1074 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <script type="text/javascript">
  2.    var totalMsg = "";
  3.    function printSdk()
  4.    {
  5.                 var getPrinter = function()
  6.         {
  7.               return {
  8.                                 print: function()
  9.                     {
  10.                                     alert(totalMsg);
  11.                                   }
  12.                   }
  13.          }
  14.    
  15.    
  16.             var pf = function(msg)
  17.         {
  18.                    totalMsg += msg;
  19.                    getPrinter().print();
  20.             }
  21.        
  22.                    pf("Spads Shane");
  23.    }
  24.    printSdk();
  25. </script>

  26. <script type="text/javascript">
复制代码
这段代码如何读懂,关键在于
print: function()
{
alert(totalMsg);
}
这段代码!!!!!!!什么意思······································
我说下我理解的流程printSdk()    ----》 pf("Spads Shane")(调用哪个匿名函数) ----》 getPrinter().print() ;

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

4 个回复

倒序浏览
  1.   var test = function() {
  2.           return {
  3.                    method: function() {
  4.                                     alert("1fengchao");
  5.                    }
  6.           }
  7.       
  8.    
  9.     };
  10.    
  11.     test().method();
复制代码
该段代码打印:1fengchao
method: function() 类似与javascript中json。
关于json:
  1.   var test = {"first": "zhangsan", "second": "lisi", "last": "wangwu" };
  2.     var test1 = {"person": ["students", "teachers"]};
  3.     var test2 ={"animal": [
  4.                                             {"cat": ["whit cat", "black cat"]} ,
  5.                                             {"dog": ["big dog", "small dog"]}
  6.                                     ]
  7.                                            
  8.                             };
  9.     alert(test.first);                       
  10.     alert(test1.person[0]);
  11.     alert(test2.animal[0].cat[1]);
复制代码
结果分别为:zhangsan,students,balck cat.
OK!回到最上面代码:
通过json的理解,和对于匿名函数熟悉的人都这段:var t = function(){}  通过t()就可以获取函数里面的内容
不难发现alert(test().method)得到的就是这个无名的函数。
<!--代码改写 -->
     var test = {"method2": function() {alert('2fengchao');}};
     test.method2();

通过改写成json就更好理解了。(注:json后者就不能打算越好哟!
         --------冯超

回复 使用道具 举报
你已经把function()函数赋给 getPrinter变量,下面  getPrinter().print();是调用的 print: function()   { alert(totalMsg);}函数,
另外你的函数你已经赋给变量,变量可以看成函数的名字,可以用来调用,
希望你能理解!

回复 使用道具 举报
请问 print: function()   { alert(totalMsg);}函数 这个如何解释
回复 使用道具 举报
★忙碌★ 发表于 2013-8-31 07:44
你已经把function()函数赋给 getPrinter变量,下面  getPrinter().print();是调用的 print: function()   { ...

我已经解释的够清楚,如果你有新的理解,please complain: var test = function() {
          return {
                   method: function() {
                                    alert("1fengchao");
                   }
          }


    };

    test().method();

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马