摘要: 我们描述了ES6中添加的新类系统,用于处理创建对象构造函数的琐碎情况。我们展示了如何使用它来编写如下代码: class Circle { constructor(radius) { this.radius = radius; Circle.circlesMade++; }; static draw( 阅读全文
posted @ 2021-08-28 09:07 Max力出奇迹 阅读(141) 评论(0) 推荐(0) 编辑
摘要: JavaScript项目已经发展到令人瞠目结舌的规模,社区已经开发了用于大规模工作的工具。你需要的最基本的东西之一是一个模块系统,这是一种将你的工作分散到多个文件和目录的方法——但仍然要确保你的所有代码片段可以根据需要相互访问——而且还要能够有效地加载所有代码。所以很自然,JavaScript有一个 阅读全文
posted @ 2021-08-27 22:05 Max力出奇迹 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 当Brendan Eich在1995年设计了JavaScript的第一个版本时,他犯了很多错误,包括从那时起就成为该语言一部分的一些错误,比如Date对象和当你不小心将它们相乘时对象会自动转换为NaN。然而,事后看来,他做对的事情都是非常重要的事情:对象;原型;具有词法作用域的一级函数;默认可变性。 阅读全文
posted @ 2021-08-27 13:54 Max力出奇迹 阅读(276) 评论(0) 推荐(1) 编辑
摘要: 我们将讨论一个老问题:在JavaScript中创建对象的构造函数。 存在的问题 假设我们想要创建最典型的面向对象设计的示例:Circle类。假设我们正在为一个简单的Canvas库编写一个Circle。除此之外,我们可能想知道如何做到以下几点: 在给定的画布Canvas上画一个给定的圆Circle。 阅读全文
posted @ 2021-08-26 20:01 Max力出奇迹 阅读(204) 评论(0) 推荐(1) 编辑
摘要: 这就是我们今天要做的事情: var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!`); return Reflect.get(target, key, receiv 阅读全文
posted @ 2021-08-26 11:43 Max力出奇迹 阅读(222) 评论(0) 推荐(0) 编辑
摘要: Rest参数 在创建API时,一个常见的需求是创建可变参数函数(参数个数不确定),这个函数可以接受任意数量的参数。例如,string.prototype.concat方法接受任意数量的字符串参数。通过使用rest参数,ES6提供了一种编写可变参数函数的新方法。 为了演示,让我们编写一个简单的可变参数 阅读全文
posted @ 2021-08-24 20:44 Max力出奇迹 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一个简短的舞台剧 之前我们关注了生成器的基本行为。这可能有点奇怪,但并不难理解。生成器函数很像常规函数。主要的区别是生成器函数体不会一次全部运行。它每次运行一点,每次执行到yield表达式时暂停。在上一篇关于Generator的文章中有详细的解释,但我们从未做过一个完整的示例,说明所有部分是如何组合 阅读全文
posted @ 2021-08-24 17:32 Max力出奇迹 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 艰难的共同进化案例 JS不太像其他编程语言,有时这会以令人惊讶的方式影响语言的发展。ES6模块就是一个很好的例子。其他语言有模块系统。比如,Python有个非常好的模块系统。当标准委员会决定在ES6中添加模块时,他们为什么不直接复制现有的系统呢? JS是不同的,因为它是在web浏览器中运行的。I/O 阅读全文
posted @ 2021-08-24 13:41 Max力出奇迹 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 第七种类型 自从JavaScript在1997年首次标准化以来,已经有了六种类型。在ES6之前,JS程序中的每个值都属于这些类别之一: Undefined Null Boolean Number String Object 每种类型都是一组值。前五个集合都是有限的。当然,只有两个布尔值,true和f 阅读全文
posted @ 2021-08-24 09:33 Max力出奇迹 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 前世今生 <!-- 单行注释 箭头从一开始就是JavaScript的一部分。第一个JavaScript教程建议用HTML注释包装内联脚本。这将防止不支持JS的浏览器将JS代码错误地显示为文本。你可以这样写: <script language="javascript"> <!-- document.b 阅读全文
posted @ 2021-08-24 08:12 Max力出奇迹 阅读(165) 评论(0) 推荐(0) 编辑
返回顶部↑