iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JavaScript代码组织结构良好的特点有哪些
  • 191
分享到

JavaScript代码组织结构良好的特点有哪些

2024-04-02 19:04:59 191人浏览 独家记忆
摘要

本篇内容主要讲解“javascript代码组织结构良好的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript代码组织结构良好的特点有哪些

本篇内容主要讲解“javascript代码组织结构良好的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript代码组织结构良好的特点有哪些”吧!

 随着JavaScript项目的成长,如果你不小心处理的话,他们往往会变得难以管理。我们发现自己常常陷入的一些问题: 当在创建新的页面时发现,很难重用或测试之前写的代码。

  当我们更深处地研究这些问题,我们发现根本原因是无效的依赖管理造成的。比如,脚本A依赖脚本B,并且脚本B又依赖脚本C,当C没有被正确引入时,整个依赖链就无法正常工作了。

  为了解决这个问题,我们已经采取了异步模块定义(AMD)的模式,并引入require.js到我们的技术堆栈。经过对AMD的进一步探索,我们已经基本确定,组织严密的JavaScript一般都呈现以下五个特点:

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

  让我们详细讨论一下。

  始终声明我们的依赖

  我们最常碰到了的一个问题是,我们会经常忽略那些会被确定加载的依赖项。举例来说,如果我们创建了一个Jquery插件,一般认为没有必要申报jQuery的依赖,因为它在大多数页面都是默认装载的。虽然这似乎适用于大多数的网页,但当我们试图进行单元测试或在一个全新的页面加载时,它就变成一个问题。

  始终声明我们的依赖,我们就消除了JavaScript中90%的问题。可重用的代码变得更可靠,单元测试的数量增加了4倍也是一个因素。

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

  在管理JavaScript依赖时经常碰到的一个有趣问题是,较旧的第三方库可能无法和您的依赖关系管理系统配合工作。例如,你们内部使用了jQuery的一个很酷的插件,但它对require.js一无所知。这会成为一个问题,因为第一个特点,我们来添加对这个插件的引用。
  解决的办法是通过依赖管理工具为这个插件制作一个垫片。在require.js中,这可以很容易地通过配置来完成:

  var require = {

1. <p><font size="3">  "shim": {</font></p>

2. <p><font size="3">  "lib/cool-plugin": {</font></p>

3. <p><font size="3">  "deps": ["lib/jquery"]</font></p>

4. <p><font size="3">  }</font></p>

5. <p><font size="3">  }</font></p>

6. <p><font size="3">  }</font></p>

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

  最终的结果是代码更容易测试和重用,因为你总是有一个require()来调用所需的功能。

  定义跟调用应该分离

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

  ## js/User.js

1. <p><font size="3">  define(functino(require) {</font></p>

2. <p><font size="3">  var User = function(name, greeter) {</font></p>

3. <p><font size="3">  this.name = name;</font></p>

4. <p><font size="3">  this.greeter = greeter;</font></p>

5. <p><font size="3">  };</font></p>

6. <p><font size="3">  User.prototype.sayHello = function() {</font></p>

7. <p><font size="3">  this.greeter("Hello, " + this.name);</font></p>

8. <p><font size="3">  };</font></p>

9. <p><font size="3">  var user = new User('Alice', window.alert);</font></p>

10. <p><font size="3">  user.sayHello();</font></p>

11. <p><font size="3">  });</font></p>

  在这个例子中,一个单一的文件即定义了User类又调用它。这将很难重用这个代码,因为只要加载这个脚本就会出现alert。同样greeter这个非常难以测试。

  解决的办法是保持定义和执行的分离。这有助于确保可重用性和可测性:

  ## js/User.js

1. <p><font size="3">  define(functino(require) {</font></p>

2. <p><font size="3">  var User = function(name, greeter) {</font></p>

3. <p><font size="3">  this.name = name;</font></p>

4. <p><font size="3">  this.greeter = greeter;</font></p>

5. <p><font size="3">  };</font></p>

6. <p><font size="3">  User.prototype.sayHello = function() {</font></p>

7. <p><font size="3">  this.greeter("Hello, " + this.name);</font></p>

8. <p><font size="3">  };</font></p>

9. <p><font size="3">  return User;</font></p>

10. <p><font size="3">  });</font></p>

11. <p><font size="3">  ## js/my-page.js</font></p>

12. <p><font size="3">  define(functino(require) {</font></p>

13. <p><font size="3">  var User = require('js/User');</font></p>

14. <p><font size="3">  var user = new User('Alice', window.alert);</font></p>

15. <p><font size="3">  user.sayHello();</font></p>

16. <p><font size="3">  });</font></p>


  这种变化,User类可以安全地在许多脚本中重用。

  依赖应该异步加载

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

  通过使用一个闭包,我们可以进一步利用“use strict”的好处。

  模块不应依赖全局变量

  为了进一步加强我们的JavaScript代码库,我们已经(几乎)完全消灭了全局变量(除了由require.js提供的全局变量,如require()和define())。全局变量是臭名昭著的潜在的进入模块的“隐藏的依赖关系”,它会使代码很难重用或测试。

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

  var require = {

1. <p><font size="3">  "shim" : {</font></p>

2. <p><font size="3">  "lib/calculator": {</font></p>

3. <p><font size="3">  "export": "Calc"</font></p>

4. <p><font size="3">  }</font></p>

5. <p><font size="3">  }</font></p>

6. <p><font size="3">  }</font></p>

到此,相信大家对“JavaScript代码组织结构良好的特点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaScript代码组织结构良好的特点有哪些

本文链接: https://www.lsjlt.com/news/85564.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript代码组织结构良好的特点有哪些
    本篇内容主要讲解“JavaScript代码组织结构良好的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript代码组织结构良好的特点有哪些...
    99+
    2024-04-02
  • C#结构的特点有哪些
    本文小编为大家详细介绍“C#结构的特点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#结构的特点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C# 结构的特点您已经用了一个简单的名为 Books ...
    99+
    2023-06-17
  • JavaScript 对象的最佳实践:编写干净、结构良好的代码
    清晰的命名约定: 对象名称应简洁、描述性,并反映其用途。 使用骆驼命名法,并将单词首字母大写。 避免使用下划线或连字符,因为它们会降低可读性。 一致的键命名: 使用一致的键来表示相似的数据类型。 考虑使用常量来定义键名称,确保跨整个...
    99+
    2024-03-13
    使用对象是 JavaScript 开发中的基石 它们为组织和存储数据提供了一种强大且灵活的方法。为了编写干净、结构良好的代码 遵循以下最佳实践至关重要:
  • JavaScript中有哪些语法和代码结构
    JavaScript中有哪些语法和代码结构?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做出...
    99+
    2023-06-14
  • JavaScript中不用if写代码有哪些特点
    这篇文章主要讲解了“不用if写代码有哪些特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“不用if写代码有哪些特点”吧!示例1: 统计数组中的奇数假设我们有...
    99+
    2024-04-02
  • shiro中SecurityManager类的结构有哪些特点
    这篇文章给大家介绍shiro中SecurityManager类的结构有哪些特点,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一) shiro的SecurityManager类结构为:总结: SecurityManag...
    99+
    2023-05-31
    securitymanager age shiro
  • JavaScript不良的编码习惯有哪些
    这篇文章主要介绍“JavaScript不良的编码习惯有哪些”,在日常操作中,相信很多人在JavaScript不良的编码习惯有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • JavaScript代码重构的方法有哪些
    这篇文章主要介绍了JavaScript代码重构的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript代码重构的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.提炼函数在 JavaS...
    99+
    2023-06-27
  • 好用的JavaScript代码片段有哪些
    这篇文章主要为大家展示了“好用的JavaScript代码片段有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“好用的JavaScript代码片段有哪些”这篇文...
    99+
    2024-04-02
  • openstack架构的特点有哪些
    模块化:OpenStack采用了模块化的架构,有多个组件(如Nova、Neutron、Cinder等)组成,每个组件负责不同的功...
    99+
    2024-04-02
  • javascript的判断结构有哪些
    这篇文章主要讲解了“javascript的判断结构有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript的判断结构有哪些”吧! ...
    99+
    2024-04-02
  • javascript的语句结构有哪些
    这篇文章主要讲解了“javascript的语句结构有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript的语句结构有哪些”吧! ...
    99+
    2024-04-02
  • julia语言的结构特征有哪些
    Julia语言的结构特征有以下几个方面:1. 动态类型系统:Julia是一种动态类型的语言,变量的类型可以在运行时进行改变。2. J...
    99+
    2023-09-21
    julia
  • 如何利用PHP7的namespace和use关键字组织代码的结构?
    如何利用PHP7的namespace和use关键字组织代码的结构?在编写大型项目时,代码的结构化和组织是非常重要的。PHP7引入了namespace和use关键字,帮助我们更好地管理代码的命名空间,提高代码的可读性和可维护性。本文将介绍如何...
    99+
    2023-10-22
    PHP NameSpace use
  • 如何使用PHP7的NameSpace和Use关键字组织代码的结构?
    如何使用PHP7的NameSpace和Use关键字组织代码的结构?引言:在软件开发中,代码的组织结构是非常重要的,它直接关系到代码的可读性、可维护性和可扩展性。随着PHP版本的不断迭代,PHP7引入了NameSpace和Use关键字,这为我...
    99+
    2023-10-22
    PHP NameSpace use
  • java构造方法的特点有哪些
    Java构造方法的特点有以下几个:1. 构造方法与类同名。构造方法的名称必须与类的名称相同。2. 构造方法没有返回类型。构造方法没有...
    99+
    2023-08-23
    java
  • c#中wcf架构的特点有哪些
    分布式计算:WCF是一个分布式计算框架,可以在不同的计算机上运行不同的服务,并且可以通过网络进行通信。 基于标准:WCF基于...
    99+
    2024-03-02
    c#
  • java构造函数的特点有哪些
    Java构造函数的特点有以下几点:1. 构造函数的名称必须与类名完全相同,且没有返回类型,包括void类型。2. 构造函数在创建对象...
    99+
    2023-08-31
    java
  • 好的云服务器有哪些特点
    好的云服务器有以下特点: 可靠性:云服务器提供高可靠性和高可用性保证,可以确保用户在任何时候都能够获取高可用的系统。 快速响应:云服务器提供快速响应机制,可以在用户请求发生故障时提供快速恢复和响应,从而确保用户的业务能够继续运行。 经济...
    99+
    2023-10-27
    服务器 有哪些
  • jspXCMS源代码目录结构有哪些内容
    这篇文章主要介绍了jspXCMS源代码目录结构有哪些内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS源代码目录结构有哪些内容文章都会有所收获,下面我们一起来看看吧。webapp目录jsp jsp...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作