【javascript高级】前端模块化,js模块化

js中没有类的概念,但js开发愈来愈复杂,须要有模块化的需求,因而不少技术应运而生。html

commonjs前端

amdnode

cmdjquery

他们的区别浏览器

requirejs是什么,它和commonjs的区别模块化

 

别着急慢慢搞清楚,函数

 

请搞清楚后,本身手写在这里,禁止复制粘贴requirejs

 

相关连接:http://www.cnblogs.com/dolphinX/p/4381855.htmlui

搜索关键词:前端模块化spa

 

 

请眼熟这个结构:

;(function (factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        // Register as an anonymous AMD module:
        define([
            'jquery',
            'jquery.ui.widget'
        ], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS:
        factory(
            require('jquery'),
            require('./vendor/jquery.ui.widget')
        );
    } else {
        // Browser globals:
        factory(window.jQuery);
    }
}(function ($) {
    'use strict';

    // code here

}));

肢解它:

;();
function (factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        // Register as an anonymous AMD module:
        define([
            'jquery',
            'jquery.ui.widget'
        ], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS:
        factory(
            require('jquery'),
            require('./vendor/jquery.ui.widget')
        );
    } else {
        // Browser globals:
        factory(window.jQuery);
    }
}(function ($) {
    'use strict';

    // code here

})
function (factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        // Register as an anonymous AMD module:
        define([
            'jquery',
            'jquery.ui.widget'
        ], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS:
        factory(
            require('jquery'),
            require('./vendor/jquery.ui.widget')
        );
    } else {
        // Browser globals:
        factory(window.jQuery);
    }
}

//下面的部分,做为参数传入上面那个函数中
(function ($) {
    'use strict';

    // code here

})

 进一步 

amd

function (factory) {
    // Register as an anonymous AMD module:
   define([
      'jquery',
      'jquery.ui.widget'
   ], factory);
}

node/commonJS

function (factory) {
     // Node/CommonJS:
    factory(
        require('jquery'),
        require('./vendor/jquery.ui.widget')
    );
}

浏览器原生

function (factory) {
    // Browser globals:
    factory(window.jQuery);
}

至关于:

amd

//amd 常见的写法
define( ['jquery','jquery.ui.widget'] , function ($) {

    // code here

    }
);

 

node/commonJS

// 有待研究。。。。。。。
function
(factory) { // Node/CommonJS:
(function ($) {
    'use strict'; // code here  })( require('jquery'), require('./vendor/jquery.ui.widget') ); 

}

 

 

浏览器原生:

//比较常见的写法:
(function ($) {
    'use strict';

    // code here

})(window.jQuery);
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息