定义对象之间的一对多依赖关系,以便当一个对象更改状态时,将通知其所有依赖关系。在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如说邮件系统,你在收到一封邮件的时候经常桌面上会有通知,告...
说到JavaScript装饰器,我们先来弄清楚什么是装饰器。装饰器是对类、函数、属性之类的一种装饰,可以针对其添加一些额外的行为。通俗的理解可以认为就是在原有代码外层包装了一层处理逻辑。有些人认为装饰器是一种解决方案,而并非是狭义的@Dec...
想了解JavaScript事件循环,首先要知道,JavaScript分为同步任务和异步任务。同步任务都在主线程(这里的主线程就是JS引擎线程)上执行,会形成一个执行栈,主线程之外,事件触发线程管理着一个任务队列,只要异步任务有了运行结果,就...
继承是很多编程语言的特性之一,JavaScript脚本语言同样具备这一特性。JavaScript继承总共分成5种,包括构造函数式继承、原型链式继承、组合式继承、寄生式继承和寄生组合式继承,下面我们来一一介绍。1.构造函数式继承首先来看第一种...
我们在刚开始学习JavaScript的时候,很容易被JavaScript中的this及其相关的方法,例如:bind,apply,call方法迷惑。JavaScript里的函数是一个高阶函数,编程语言里的高阶函数是可以作为对象传递的,同时ja...
对于JavaScript来说,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时“自动”释放内存,这个自动释放内存的过程称为垃圾回收。因为自动垃圾回收机制的存在,让大多Javascript开发者感觉他们可...
模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)。它具有两个基本的特征:外部特征和内部特征。JavaScript模块化规范,目前主流的有CommonJS,AMD,CMD,ES6Module这...
变量是能储存计算结果或能表示值的抽象概念,指程序中一个已经命名的存储单元,它的主要作用就是为数据操作提供存放信息的容器。变量是相对常量而言的,常量是一个不会改变的固定值,而变量的值可能会随着程序的执行而改变。变量有两个基本特征,即变量名和变...
表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。表达式是可以执行并解析为值的代码单元。JavaScript表...
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的...