uu快3下载安装_uu快3注册邀请码_手机版ios

好程序员分享JavaScript代码组织结构良好的5个特点

时间:2020-03-20 08:13:22 出处:uu快3下载安装_uu快3注册邀请码_手机版ios

13.

14.

  "lib/cool-plugin": {

  最终的结果是代码更容易测试和重用,不可能 你老是 有另4个require()来调用所需的功能。

3.

  User.prototype.sayHello = function() {

2.

7.

  this.greeter = greeter;

16.

  ## js/User.js

1.

  为了进一步加强亲戚亲戚朋友的JavaScript代码库,亲戚亲戚朋友不可能 (几乎)删改消灭了全局变量(除了由require.js提供的全局变量,如require()和define())。全局变量是臭名昭著的潜在的进入模块的“隐藏的依赖关系”,它会使代码比较慢重用或测试。

  依赖应该异步加载

  };

  ## js/my-page.js

  在这一例子中,另4个单一的文件即定义了User类又调用它。这将比较慢重用这一代码,不可能 如果加载这一脚本就会再次总出 alert。同样greeter这一非常难以测试。

10.

  模块不应依赖全局变量

8.

3.

  this.name = name;

5.

  为了补救这一大什么的问题,亲戚亲戚朋友不可能 采取了异步模块定义(AMD)的模式,并引入require.js到亲戚亲戚朋友的技术堆栈。经过对AMD的进一步探索,亲戚亲戚朋友不可能 基本选者,组织落细落落的JavaScript一般都呈现以下4个特点:

5.

  补救的妙招是保持定义和执行的分离。这利于确保可重用性和可测性:

10.

2.

2.

  var User = function(name, greeter) {

  });

  }

  始终声明亲戚亲戚朋友的依赖 为第三方代码库加进shim(垫片) 定义跟调用应该分离 依赖应该异步加载 模块不应依赖全局变量

  });

3.

  this.greeter = greeter;

15.

  }

4.

5.

  }

8.

  this.greeter("Hello, " + this.name);

6.

  this.greeter("Hello, " + this.name);

  var user = new User('Alice', window.alert);

  define(functino(require) {

  "deps": ["lib/jquery"]

  不可能 试图同步加载脚本会愿因浏览器锁死,这是非常重要的,你的脚本和你的模块应该使用异步加载机制。 Require.js在默认具体情况下,所有异步加载你的模块,只能所有的的依赖都加载完以前才会执行你的模块代码的函数。

  "export": "Calc"

  通过使用另4个闭包,亲戚亲戚朋友还都要进一步利用“use strict”的好处。

6.

  为第三方代码库加进shim(垫片)

12.

  User.prototype.sayHello = function() {

4.

  define(functino(require) {

  }

  定义跟调用应该分离

  好多线程 员JavaScript代码组织社会形态良好的4个特点,随着JavaScript项目的成长,不可能 你不小心补救话语,亲戚亲戚朋友往往会变得难以管理。亲戚亲戚朋友发现此人 常常陷入的或多或少大什么的问题: 当在创建新的页面时发现,比较慢重用或测试以前写的代码。

  this.name = name;

  var require = {

1.

  这是限制JavaScript代码的可重用性和可测试性的另4个常见大什么的问题。大什么的问题表现在另4个单一的文件即定义了另4个类/函数又调用了它。考虑下面的代码:

  在管理JavaScript依赖时老是 碰到的另4个有趣大什么的问题是,较旧的第三方库不可能 无法和您的依赖关系管理系统配合工作。类似于 ,亲戚亲戚朋友内控 使用了jQuery的另4个很酷的插件,但它对require.js一无所知。这会成为另4个大什么的问题,不可能 第另4个特点,亲戚亲戚朋友来加进对这一插件的引用。

  补救的妙招是通过依赖管理工具为这一插件制作另4个垫片。在require.js中,这还都要很容易地通过配置来完成:

  var User = require('js/User');

9.

  亲戚亲戚朋友最常碰到了的另4个大什么的问题是,亲戚亲戚朋友会老是 忽略这一会被选者加载的依赖项。举例来说,不可能 亲戚亲戚朋友创建了另4个jQuery插件,一般认为只能必要申报jQuery的依赖,不可能 它在大多数页面删改都是默认装载的。确实这似乎适用于大多数的网页,但当亲戚亲戚朋友试图进行单元测试或在另4个全新的页面加载时,它就变成另4个大什么的问题。

  define(functino(require) {

  有了这一简单的配置,每另4个加载 lib/cool-plugin.js 的脚本删改都是自动加载jQuery。将利于满足所有相关性.

6.

  };

  }

  "shim" : {

4.

  Require.js也让亲戚亲戚朋友转换第三方全局变量,require() - 通过垫补功还都要模块。在这一例子中,lib/calculator 创建另4个全局的计算器对象,这一库是被require化的。

  这一变化,User类还都要安全地在或多或少脚本中重用。

  var user = new User('Alice', window.alert);

  return User;

  始终声明亲戚亲戚朋友的依赖,亲戚亲戚朋友就消除了JavaScript中90%的大什么的问题。可重用的代码变得更可靠,单元测试的数量增加了4倍也是另4个因素。

  });

  user.sayHello();

9.

  当亲戚亲戚朋友更深处地研究这一大什么的问题,亲戚亲戚朋友发现根本愿因是无效的依赖管理造成的。比如,脚本A依赖脚本B,如果 脚本B又依赖脚本C,当C只能被正确引入时,整个依赖链就无法正常工作了。

  ## js/User.js

1.

  };

2.

  "shim": {

  user.sayHello();

7.

6.

  var User = function(name, greeter) {

  "lib/calculator": {

11.

11.

  让亲戚亲戚朋友删改讨论一下。

5.

3.

  }

  };

  始终声明亲戚亲戚朋友的依赖

  var require = {

1.

4.

热门

热门标签