zoukankan      html  css  js  c++  java
  • 常用代码之五: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/

  • 相关阅读:
    c/c++字符串传递
    从一个小程序明白new和delete的奇特现象
    Linux下构造函数string需要注意的问题
    字符串转time_t
    CentOS7基础建站指南(笔记)
    图与搜索
    面向的对象编程的小猫腻
    多线程编程
    生产者消费者模式-Java实现
    Java-代理模式的理解
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/3420494.html
Copyright © 2011-2022 走看看