• 常用代码之五:RequireJS, 一个Define需要且只能有一个返回值/对象,一个JS文件里只能放一个Define.


    RequireJS 介绍说一个JS文件里只能放一个Define,这个众所周知,不提。

    关于Define,它需要有一个返回值/对象,且只能有一个返回值/对象,这一点却是好多帖子没有提到的,但又非常重要的,一不留神就会报错。

    别的不说了,上代码:

    1. require.htm代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript" data-main="main" src="require.js"></script>
    </head>
    <body>
       <input type="text" id="tid" value="123" />
    </body>
    </html>


    2. main.js代码如下:

    require.config({
        paths: {
            jquery: 'jquery-1.7.2'
        }
    });
    
    require(["lzd"], function (returnValue) {
        returnValue.lzd123("asdf");
        alert(returnValue.userName);
    });

    3. lzd.js代码如下:

    define(function () {
    
        function lzd123(msg) {
            alert("lzd1" + msg);
    
        };
    
        function lzd456(msg) {
            alert("lzd1sdfasdfasdf" + msg);
        };
    
        var returnVar = {
            userName: "111",
            lzd456: lzd456,
            lzd123: lzd123
        }
    
        
        return returnVar;
       
    });

    要想在main.js里能随意调用lzd.js中的lzd123或lzd456方法,就需要把他们糅合到一个对象里给返回去,细想一下,返回的对象里有方法,有属性可以使用,这就是所谓的模块化吧!
     

    参考帖子:http://www.jaceju.net/blog/archives/beginning-requirejs/

  • 相关阅读:
    SQL表结构
    Mssql 行转列
    动态Order by
    Nopi Excel导入
    使用SyncToy 同步两台机器上的文件夹
    ueditor1.4.3 在IE8下的 BUG
    WebService国内省市县接口
    AsyncTask的参数介绍
    Json分割并解析
    JQuery iframe页面操作父页面中的元素与方法
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/3420494.html
Copyright © 2020-2023  润新知