zoukankan      html  css  js  c++  java
  • 尚学堂requireJs课程---2、模块

    尚学堂requireJs课程---2、模块

    一、总结

    一句话总结:

    # 将代码以及使用放到独立的闭包中去,并且赋值给了变量,便于外部访问
    # return出了函数和变量(放在一个json对象中)
    # 百度的webuploader应该就是这么搞的,require.js的最基础原理也是这个
    # 搞那么复杂就是为了解决一个作用域的问题
    // 模块!
    var module = (function(){
    
       var Demo = {
    
       }
        var hello = "hello";
    
        function userInfo(){
          var name = "iwen";
          var age = 20;
          console.log(name);
        }
    
        return {
          userInfo:userInfo,
          hello:hello
        }
    
    })();
    console.log(module.hello);
    module.userInfo();

    1、js中通过对象实现变量不至于直接挂载到全局(缺点是外部可以修改,不符合开闭原则)?

    用对象来定义变量
    var infoObj = {
      name:"iwen",
      age:20,
      sex:"男"
    }
    // 不至于直接挂载到全局
    console.log(infoObj.age);
    infoObj.age = 30;
    console.log(infoObj.age);

    2、js作用域独立实例(外部不能修改,问题是外部无法使用)?

    将代码以及使用放到独立的闭包中去
    (function(){
      function userInfo(){
        var name = "iwen";
        var age = 20;
        return {
          name:name,
          age:age
        }
      }
      console.log(userInfo().age);
      var info = userInfo()
      console.log(info.name);
    })();

    3、js模块实例(在js作用域独立的基础上赋值给变量,便于外部访问)?

    # 将代码以及使用放到独立的闭包中去,并且赋值给了变量,便于外部访问
    # return出了函数和变量(放在一个json对象中)
    # 百度的webuploader应该就是这么搞的,require.js的最基础原理也是这个
    # 搞那么复杂就是为了解决一个作用域的问题
    // 模块!
    var module = (function(){
    
       var Demo = {
    
       }
        var hello = "hello";
    
        function userInfo(){
          var name = "iwen";
          var age = 20;
          console.log(name);
        }
    
        return {
          userInfo:userInfo,
          hello:hello
        }
    
    })();
    console.log(module.hello);
    module.userInfo();

    二、内容在总结中

     1 <!DOCTYPE html>
     2 <html lang="en" dir="ltr">
     3   <head>
     4     <meta charset="utf-8">
     5     <title></title>
     6   </head>
     7   <body>
     8 
     9     <script type="text/javascript">
    10       /*
    11         模块
    12           设计模式规范:
    13             开闭原则:对扩展开放,对修改关闭
    14       */
    15 
    16       // var infoObj = {
    17       //   name:"iwen",
    18       //   age:20,
    19       //   sex:"男"
    20       // }
    21       // // 不至于直接挂载到全局
    22       // console.log(infoObj.age);
    23       // infoObj.age = 30;
    24       // console.log(infoObj.age);
    25 
    26       // 作用域独立
    27       // (function(){
    28       //   function userInfo(){
    29       //     var name = "iwen";
    30       //     var age = 20;
    31       //     return {
    32       //       name:name,
    33       //       age:age
    34       //     }
    35       //   }
    36       //   console.log(userInfo().age);
    37       //   var info = userInfo()
    38       //   console.log(info.name);
    39       // })();
    40 
    41       // 模块!
    42       var module = (function(){
    43 
    44          var Demo = {
    45 
    46          }
    47           var hello = "hello";
    48 
    49           function userInfo(){
    50             var name = "iwen";
    51             var age = 20;
    52             console.log(name);
    53           }
    54 
    55           return {
    56             userInfo:userInfo,
    57             hello:hello
    58           }
    59 
    60       })();
    61       console.log(module.hello);
    62       module.userInfo();
    63 
    64 
    65 
    66     </script>
    67 
    68   </body>
    69 </html>
     
  • 相关阅读:
    自定义Bootstrap样式弹出框
    自定义Bootstrap样式弹出框
    Java高级
    Java高级
    Java高级
    Java高级
    与jQuery的感情碰撞——由浅入深学jQuery
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11610496.html
Copyright © 2011-2022 走看看