JavaScript
enginecode
这个作者很懒,什么都没留下…
展开
-
Javascript有趣特性
对象属性的引用 感兴趣的同学可以复制以下代码到devtools的console运行一下,你会发现,userName 不会跟随obj的userName的属性值变化;而age会随着obj的age属性变化。 let obj = {userName: "hanger", age: 20}; let userName = obj.userName; let age = obj.age; Object.defineProperty(obj, "age", { enumberable: true, configur原创 2020-09-12 22:18:11 · 127 阅读 · 0 评论 -
JavaScript的模块系统详解(三)
这是JavaScript模块系列的最后一篇,介绍AMD。 为什么? AMD全称是Asynchronous Module Defintion,或者叫异步模块规范。它和CommonJS的最大区别就是AMD支持异步模块加载,有利于浏览器端应用的用户体验,它对异步加载的实现完全符合开发人员使用传统闭包的习惯: //Calling define with a dependency array and a f...原创 2019-11-30 09:49:08 · 107 阅读 · 0 评论 -
JavaScript的模块系统详解(二)
本文是JavaScript模块系统系列的第二篇。 CommonJS CommonJS旨在为服务端JavaScript应用程序的模块化开发提供规范。在NodeJS最初的几个版本中,开发人员也是需要遵守CommonJS规范,由于各种原因NodeJS最终形成了自己的一套模块系统实现,但仍然无法脱离CommonJS规范的影响: // In circle.js const PI = Math.PI; exp...原创 2019-11-30 09:44:25 · 154 阅读 · 0 评论 -
JavaScript的模块系统详解(一)
由于JavaScript开发变得越来越普遍,命名空间和依赖管理更加难以处理,前赴后继的程序员们提出来很多的解决方案,本文将探讨一些经典的方案,并描述这些方案解决了哪些问题。 为什么需要模块系统 作为开发人员,我们一定知道封装和依赖。在实际的项目开发中,我们通常会引入项目依赖,如果没有封装机制,这可能会导致代码间的各种冲突,所以我们在看一些C语言的源码库的时候,经常会看到各种前缀: #ifndef ...原创 2019-11-17 11:42:11 · 239 阅读 · 0 评论