5.1. Promise#then promise.then(onFulfilled, onRejected);then 代码示例 var promise = new Promise(function(resolve, reject){ resolve("传递给then的值"); }); promise.then(function (value) { console.log(value); }, function (error) { console.error(error); });
介绍模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。
介绍适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。正文我们来举一个例子,鸭子(Dock)有飞(fly)和嘎嘎叫(quack)的行为,而火鸡虽然也有飞(fly)的行为,但是其叫声是咯咯的(gobble)。
介绍享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的 话,就可以大幅度较少需要实例化的类的数量。
介绍观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。使用观察者模式的好处:支持简单的广播通信,自动通知所有已经订阅过的对象。页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性。
介绍与创建型模式类似,工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。这个模式十分有用,尤其是创建对象的流程赋值的时候,比如依赖于很多设置文件等。
介绍从本章开始,我们会逐步介绍在 JavaScript 里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现。OK,正式开始。在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。
文档对象模型 Document Object ModelDOM(Document Object Model,文档对象模型)是一个通过和 JavaScript 进行内容交互的 API。Javascript 和 DOM 一般经常作为一个整体,因为 Javascript 通常都是用来进行 DOM 操作和交互的。关于DOM,有些知识需要注意:window 对象作为全局对象,也就是说你可以通过 window 来访问全局对象。
介绍昨天发的《大叔手记(19):你真懂 JavaScript 吗?》里面的 5 个题目,有很多回答,发现强人还是很多的,很多人都全部答对了。今天我们来对这 5 个题目详细分析一下,希望对大家有所帮助。题目1if (!("a" in window)) { var a = 1;}alert(a);代码看起来是想说:如果 window 不包含属性 a,就声明一个变量 a,然后赋值为 1。
介绍本章,我们将讲解在 ECMAScript 向函数 function 传递参数的策略。计算机科学里对这种策略一般称为“evaluation strategy”(大叔注:有的人说翻译成求值策略,有的人翻译成赋值策略,通看下面的内容,我觉得称为赋值策略更为恰当,anyway,标题还是写成大家容易理解的求值策略吧),例如在编程语言为求值或者计算表达式设置规则。
介绍本章我们将介绍在 JavaScript 里大家经常来讨论的话题 —— 闭包(closure)。闭包其实大家都已经谈烂了。尽管如此,这里还是要试着从理论角度来讨论下闭包,看看 ECMAScript 中的闭包内部究竟是如何工作的。正如在前面的文章中提到的,这些文章都是系列文章,相互之间都是有关联的。
介绍本章节我们要着重介绍的是一个非常常见的 ECMAScript 对象——函数(function),我们将详细讲解一下各种类型的函数是如何影响上下文的变量对象以及每个函数的作用域链都包含什么,以及回答诸如像下面这样的问题:下面声明的函数有什么区别么?(如果有,区别是什么)。var foo = function () { ...};平时的惯用方式:function foo() { ...
简介jQuery是目前应用最为广泛,最为优秀的Ajax/JavaScript开源框架之一,有数以千万记的用户,更有多不胜数的技术文档与之相关,在一定程度上,jQuery如其所宣扬的那样,改变了人们编写JavaScript的方式。
在前半部分章节中,涉及到一些重要的概念,在当时章节上下文中,限于内容,没有展开讨论,这些内容可能较难理解,因此都集中在这个章节进行讨论。具体涉及到的内容有原型链,执行期上下文,活动对象,作用域链以及 this 值。这部分内容可以结合之前章节中相关部分一起参考。
JavaScript 对象与传统的面向对象中的对象几乎没有相似之处,传统的面向对象语言中,创建一个对象必须先有对象的模板:类,类中定义了对象的属性和操作这些属性的方法。通过实例化来构筑一个对象,然后使用对象间的协作来完成一项功能,通过功能的集合来完成整个工程。
数值方法数值对象仅包含了几个任何对象均定义的默认方法方法描述constructor() 返回创建该对象实例的函数。默认是数值对象。 toExponential() 强制将数值以指数形式显示。 toFixed() 可把 Number 四舍五入为指定小数位数的数字。 toLocaleString() 以字符串的形式返回当前对象的值。该字符串适用于宿主环境的当前区域设置。
JavaScript 是什么?JavaScript 具有如下特征: 轻量级的解释型(代码不需要经过预编译)可编程语言。 用于网络应用开发的脚本语言。 可以与 Java、HTML 语言互补集成。 开放且跨平台。 JavaScript 语法一段 JavaScript 脚本由包含在网页页面中 <script>... </script> 标签内的 JavaScript 语句组成。 编程人员可以随意将由 <script>
重要的是要了解不同浏览器之间的差异,以处理每个预计会出现的问题。所以重要的是要知道哪个浏览器运行在您的 Web 页面。 获得目前运行在 Web 页面的浏览器的信息,使用内置的 navigator 对象。导航属性有几个导航相关属性,您可以使用您的 Web 页面。
您可以使用 JavaScript 来创建客户端的图像映射。 usemap 启用客户端图像映射的属性定义的 <img /> 标记和特殊的 <map> 和 <area> 扩展标签。 一般情况下,用 <map> 将形成映射的图像插入到页面,此外它带有一个额外的属性称为 usemap 。usemap 属性的值是<map> element 上的 name 属性的值。 <map>
在浏览器窗口中的每个网页都可以看作一个对象。文档对象就代表了在浏览器窗口中显示的那个 HTML 文档。文档对象有很多属性表示其他的一些对象,通过对这些属性的操作,我们就可以访问或者修改文档的内容。对文档对象的访问和修改的方式被称为文档对象模型,或者称为DOM。这些对象是按照继承关系组织在一起的。这个继承关系结构用来将网页文档对象联系在一起。
关注时代Java