钥匙要点
-
JavaScript中的
- fluent API允许通过在每个函数中返回“此”对象来实现函数调用的链接,从而允许更具可读性和可理解的代码。这使得代码更加直观,更易于调试,尤其是在处理复杂的函数调用序列时。 在不同浏览器(Chrome,Firefox,IE)上进行性能测试表明,使用Fluent API不会显着影响性能。在某些情况下,流利的API甚至比常规API快,表明可以使用它们而不担心性能损失。 Fluent API不仅适用于JavaScript,而且可以与任何JavaScript库或框架一起使用。许多流行的库和框架(例如JQuery)已经使用Fluent API来使其方法更具可读性和表现力。但是,考虑项目的需求以及团队对流利的API模式的熟悉程度,应明智地使用它们。
- > 本文是Microsoft的Web开发技术系列的一部分。感谢您支持使SitietPoint成为可能的合作伙伴。 在设计Babylon.js v2.0(网络上的3D库)时,我最近发现自己希望更多的API流利 - 也就是说,我希望社区能够更轻松地阅读,理解和建立在技术文档中花费更少的时间的工作。在本教程中,我将浏览流利的API-要考虑什么,如何编写它们以及跨浏览器的性能。
- 是什么使API流利?
>流利的API使您可以通过返回该对象来调用链接函数。如果您不知道此关键字在JavaScript中的工作方式,我建议阅读这篇很棒的文章。 我们可以轻松地创建一个流利的API:
如您所见,技巧只是返回该对象(在这种情况下对当前实例的引用)以允许链条继续。 然后,我们可以链接电话:

所以我做了一个基准!
>您可以看到foo和foo2做完全相同的事情。唯一的区别是foo可以被束缚,而foo2不能。
<span>$('<div></div>') </span> <span>.html("Fluent API are cool!") </span> <span>.addClass("header") </span> <span>.appendTo("body");</span>>
显然呼叫链不同:
和:
<span>var <span>MyClass</span> = function(a) { </span> <span>this.a = a; </span><span>} </span> <span>MyClass.prototype.foo = function(b) { </span> <span>// Do some complex work </span> <span>this.a += Math.cos(b); </span> <span>return this; </span><span>}</span>
给定此代码,我将其运行在Chrome,Firefox和IE上,以确定我是否必须关注性能。

,这是我得到的结果:
- 在Chrome中,常规API比Fluent API慢6% 在Firefox中,两个API几乎都以相同的速度运行(Fluent API慢1%) > 在IE中,两个API几乎都以相同的速度运行(流利的API慢2%)
- >
- >我在函数(Math.cos)中添加了一个操作,以模拟该函数完成的某种处理。
所以我的结论是:这是一个!
>
流利的API很棒,它们会产生更可读的代码,您可以使用它们而不会出现任何问题或绩效损失!>!
与JavaScript更多动手>这可能会让您感到惊讶,但是微软在许多开源JavaScript主题上拥有大量免费学习,我们的任务是随着Project Spartan的到来而创造更多的东西。查看我自己的:
WebGL 3D和HTML5和Babylon.js
简介- >使用ASP.NET和AngularJS
- 构建单页应用程序 HTML 中的尖端边缘图形
- 或我们团队的学习系列:
>现代Web平台Jumpstart(HTML,CSS和JS的基本原理)
- >
- >使用HTML和JavaScript Jumpstart开发通用Windows应用程序(使用已创建的JS来构建应用程序)
- 和一些免费工具:Visual Studio社区,Azure试用和Mac,Linux或Windows的跨浏览器测试工具。 >
- 本文是Microsoft的Web Dev技术系列的一部分。我们很高兴与您共享Spartan项目及其新的渲染引擎。在Modern.ie上获取免费的虚拟机或远程测试。
> JavaScript中的流利API是什么?它涉及将链接方法一起使用的方式,就像句子或一系列说明一样。这是通过确保每种方法返回对象的,允许从上一个方法的结果立即调用另一种方法来实现的。流利的API可以使您的代码更清洁,更直观,尤其是在处理复杂的功能调用序列时。
>如何在JavaScript中创建流利的API?
>在JavaScript中创建流利的API涉及设计您的方法以返回其属于其对象。这使您可以将方法链接在一起。例如,考虑一个用方法“ startEngine”,“ Accelerate”和“ Stop”的对象“汽车”。如果这些方法中的每一种都返回“此”(汽车对象),则可以像这样将它们链接在一起:car.startengine()。accelerate()。stop()。 API?
流利的API可以使您的代码更易读和更易于维护。通过将方法链接在一起,您可以以读取句子的方式表达复杂的操作。这可以使您的代码易于理解和调试。流利的API也可以使您的代码更具表现力和灵活性,从而使您可以创建更强大的抽象。
是否有使用fluent apis的缺点? ,如果不正确使用,它们也可以使调试变得更加困难。由于方法调用被链接在一起,因此一种方法的问题会影响链中的所有后续方法。此外,对于不熟悉该模式的人,流利的API有时可能不太直观。
我可以使用带有异步代码的流利API?
是的,您可以使用流利的API,使用异步代码使用流利的API ,但这可能更复杂。您需要确保链中的每种方法都返回承诺,从而使您可以使用“ .then()”将链方法一起使用。另外,您可以使用异步/等待语法来编写看起来同步的异步代码,这可以使您的流利的API易于阅读和理解。
>流利的API与JavaScript中的其他设计模式相比如何? Fluent API是一种侧重于可读性和表现力的设计模式。它可以与其他设计模式(例如构建器模式)进行比较,该模式还旨在使代码更易读和更易于使用。但是,尽管构建器模式着重于逐步构造复杂对象,但Fluent API着重于使方法调用可链接,以链接用于更可读的操作流。是否可以与JavaScript库和框架一起使用Fluent API? >
是的,流利的API可以与任何JavaScript库或框架一起使用。许多流行的库和框架(例如JQuery和Lodash)已经使用Fluent API来使他们的方法更具可读性和表现力。>如何调试流利的API?棘手,因为方法调用被链在一起。但是,您可以在方法中使用Console.LOG语句来记录其输出。此外,使用JavaScript调试器可以帮助您逐步浏览代码,并在链条中的每个步骤中查看对象的状态。>流利的API可以提高性能吗?
流利的API主要是关于改善代码的可读性和可维护性,而不是性能。但是,通过使您的代码更易于阅读和理解,流利的API可以帮助您更轻松地发现和修复性能问题。Fluent API是否适合每个项目?非常适合将可读性和可维护性作为优先事项的项目。但是,它们可能不是每个项目的最佳选择。如果您的团队不熟悉流利的API模式,则可能需要一些时间才能习惯它。此外,流利的API如果不正确使用会使调试变得更加困难。与任何设计模式一样,在决定使用Fluent API之前考虑您的项目和团队的需求很重要。
>
以上是JavaScript就像老板:了解流利的API的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

10款趣味横生的jQuery游戏插件,让您的网站更具吸引力,提升用户粘性!虽然Flash仍然是开发休闲网页游戏的最佳软件,但jQuery也能创造出令人惊喜的效果,虽然无法与纯动作Flash游戏媲美,但在某些情况下,您也能在浏览器中获得意想不到的乐趣。 jQuery井字棋游戏 游戏编程的“Hello world”,现在有了jQuery版本。 源码 jQuery疯狂填词游戏 这是一个填空游戏,由于不知道单词的上下文,可能会产生一些古怪的结果。 源码 jQuery扫雷游戏

本教程演示了如何使用jQuery创建迷人的视差背景效果。 我们将构建一个带有分层图像的标题横幅,从而创造出令人惊叹的视觉深度。 更新的插件可与JQuery 1.6.4及更高版本一起使用。 下载

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

Matter.js是一个用JavaScript编写的2D刚体物理引擎。此库可以帮助您轻松地在浏览器中模拟2D物理。它提供了许多功能,例如创建刚体并为其分配质量、面积或密度等物理属性的能力。您还可以模拟不同类型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流浏览器。此外,它也适用于移动设备,因为它可以检测触摸并具有响应能力。所有这些功能都使其值得您投入时间学习如何使用该引擎,因为这样您就可以轻松创建基于物理的2D游戏或模拟。在本教程中,我将介绍此库的基础知识,包括其安装和用法,并提供一

本文演示了如何使用jQuery和ajax自动每5秒自动刷新DIV的内容。 该示例从RSS提要中获取并显示了最新的博客文章以及最后的刷新时间戳。 加载图像是选择


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具