码迷,mamicode.com
首页 > Web开发 > 详细

【转】require.js学习笔记(一)

时间:2014-10-25 17:10:04      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   ar   使用   java   for   sp   文件   

一、立即执行函数

for (var i = 0; i < elems.length; i++) {

    (function (lockedInIndex) {  

        elems[i].addEventListener(‘click‘, function (e) {
            e.preventDefault();
            alert(‘I am link #‘ + lockedInIndex);
        }, ‘false‘);

    })(i); //入参

}
使用立即执行函数,可以达到不暴露私有成员的目的
var module1 = (function(){
    var _count = 0;
    var m1 = function(){
      //...
    };
    var m2 = function(){
      //...
    };
    return {
      m1 : m1,
      m2 : m2
    };
  })();  //无法读取_count    
 
对比立即执行函数
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
 	var a = function() {
 		alert(12)
 		var _count=1;
        var m1 = function(){
      alert(1);
    };
    var m2 = function(){
      alert(2);
    };
    return {
      m1 : m1,
      m2 : m2
    };
 	};
 
    var b = a();
 	b.m1();


 	var a2 = (function() {
 		alert(12);
 		var _count=1;
        var m1 = function(){
      alert(1);
    };
    var m2 = function(){
      alert(2);
    };
    return {
      m1 : m1,
      m2 : m2
    };
 	})();
 	a2.m2();
 	</script>
</body>
</html>
 

二、模块规范

目前主要的模块规范有commonJS与AMD
 

1.commonJS

commonJS是服务器端模块规范,nodeJs遵循此规范。因为服务端JS文件存放于本地,加载速度快,所以其加载模块(一个文件即一个模块)方式为同步加载,不适用于浏览器。
function foobar(){
        this.foo = function(){
                console.log(‘Hello foo‘);
        }

        this.bar = function(){
                console.log(‘Hello bar‘);
        }
}
 
exports.foobar = foobar; //通过export实现与外部通信
var foobar = require(‘./foobar‘).foobar,
    test   = new foobar();
 
test.bar(); 
2.AMD采用异步加载模块,加载完成后通过回调函数实现相应操作,适用与浏览器。
require([‘math‘], function (math) {
    math.add(2, 3);
  });


 
 
 
 
原文地址:
 

【转】require.js学习笔记(一)

标签:blog   http   io   ar   使用   java   for   sp   文件   

原文地址:http://www.cnblogs.com/grape1211/p/4050209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!