阮一峰 JavaScript 教程构建 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 语言,包括将值分成原始值和对象两大 历史 - 19 - 本文档使用 书栈(BookStack.CN) 构建 类。 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一 等公民,并引入闭包。 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。 正则表达式:借鉴 Perl 语言。 字符串和数组处理:借鉴 Python 语言。 为了保持简单,这种脚本语言缺少一些关键的功能,比如块级作用域、 JavaScript。基本上,JavaScript 这个名 字的原意是“很像Java的脚本语言”。 JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型 对象(prototype)的继承链。这是它与 Java 语法最大的两点区 别。JavaScript 语法要比 Java 自由得多。 另外,Java 语言需要编译,而 JavaScript 语言则是运行时由解释 器直接执行。0 码力 | 540 页 | 3.32 MB | 10 月前3
阮一峰 《ECMAScript 6入门》 第三版Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 Decorator Module 的语法 Module 的加载实现 编程风格 读懂规格 ArrayBuffer 2 1.28 2.1 2.2 2.3 参考链接 其他 源码 巨大的成功,在业界得到广泛支持,成为通行标准,奠定了 JavaScript 语言的基本 语法,以后的版本完全继承。直到今天,初学者一开始学习 JavaScript,其实就是 在学3.0版的语法。 2000年,ECMAScript 4.0 开始酝酿。这个版本最后没有通过,但是它的大部分内 容被 ES6 继承了。因此,ES6 制定的起点其实是2000年。 为什么 ES4 没有通过呢?因为这个版本太激进了,对 被 Object.assign 拷贝的。只有字符串的包装对象,会产生可枚举的实义属性, 那些属性则会被拷贝。 Object.assign 拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承 属性),也不拷贝不可枚举的属性( enumerable: false )。 Object.assign({b: 'c'}, Object.defineProperty({}, 'invisible'0 码力 | 679 页 | 2.66 MB | 1 年前3
TypeScript Handbook(中文版)
TypeScript 2.2 当在类的构造函数中需要设 置 Object.setPrototypeOf 或 __proto__ 时, new.target 就派上用场了。 在NodeJS v4及更高版本中继承 Error 类就是这样的使用案例。 示例 class CustomError extends Error { constructor(message?: string) { "); } dramaticWelcome(); 编译和运行输出应该会在ES3/ES5引擎上产生正确的行为。 支持外部辅助库( tslib ) TypeScript注入了一些辅助函数,如继承 _extends 、JSX中的展开运算 符 __assign 和异步函数 __awaiter 。 以前有两个选择: 1. 在每一个需要辅助库的文件都注入辅助库或者 2. 使用 --noEmitHelpers TypeScript Handbook(中文版) 131 TypeScript 2.1 这在继承内置类如 Error , Array , Map 等的行为上有了破坏性的改变。 请阅读extending built-ins breaking change documentation。 配置继承 通常一个项目有多个输出版本,比如 ES5 和 ES2015 ,调试和生产 或 Commonjs0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
number, m: number) {} 11. tick() { 12. console.log("beep beep"); 13. } 14. }; 和类一样,接口也可以相互继承。 这让我们能够从一个接口里复制成员到另一个接口里,可以更灵活 地将接口分割到可重用的模块里。 1. interface Shape { 2. color: string; 3. } 4 8. 9. let square = {} as Square; 10. square.color = "blue"; 11. square.sideLength = 10; 一个接口可以继承多个接口,创建出多个接口的合成接口。 1. interface Shape { 2. color: string; 3. } 4. 5. interface PenStroke { extends Shape, PenStroke { 10. sideLength: number; 11. } 12. 13. let square = {} as Square; 继承接口 接口 - 117 - 本文档使用 书栈网 · BookStack.CN 构建 14. square.color = "blue"; 15. square.sideLength = 10;0 码力 | 683 页 | 6.27 MB | 1 年前3
廖雪峰JavaScript教程3.5 闭包 3.6 箭头函数 3.7 generator 4 标准对象 4.1 Date 4.2 RegExp 4.3 JSON 5 面向对象编程 5.1 创建对象 5.2 原型继承 6 浏览器 6.1 浏览器对象 6.2 操作DOM 6.2.1 更新DOM 6.2.2 插入DOM - 2 - 本文档使用 书栈(BookStack.CN) 构建 6.2.3 删除DOM 的,它可能 是 xiaoming 继承得到的: 1. 'toString' in xiaoming; // true 因为 toString 定义在 object 对象中,而所有对象最终都会在原型链上指向 object ,所 以 xiaoming 也拥有 toString 属性。 要判断一个属性是否是 xiaoming 自身拥有的,而不是继承得到的,可以用 hasOwnProperty() 2.7 循环 - 39 - 本文档使用 书栈(BookStack.CN) 构建 7. alert(key); // 'name', 'age', 'city' 8. } 要过滤掉对象继承的属性,用 hasOwnProperty() 来实现: 1. var o = { 2. name: 'Jack', 3. age: 20, 4. city: 'Beijing'0 码力 | 264 页 | 2.81 MB | 10 月前3
ECMAScript规范 第三版 中文版对象 分配 存 储,然后通过赋初始值来初始化对象属性的全部或部分。所有的构造函数都是对象,但并非所 有的对象都是构造函数。每个构造函数都有一个 Prototype(原 型)属性,被用于实现基于原 型继承(prototype-based inheritance)和共 享属性(shared properties)。使用构造函数来创建对 象要用到 new(新 建)表达句;举个例子,new String("A 创建了一个新的字 符串对象。不使用 new 调用构造函数的后果取决于这个构造函数本身。举个例子, String("A String") 产生一个原语字符串而非对象。 ECMAScript 支持基于原型继承。每一个构造函数都有一个相关联的原型,它创建的所有 对象都拥有一个隐含的引用指向那个与其构造函数相关联的原型(所谓的对象的原型)。更深 一步讲,原型还可能会拥有 到它的原型的隐含的非空引用,依此类推;这被称为原型链 个对象包含同名属性,被引用指向的就是这个属性;如果那个对象并没有包含 同名属性,接下来检查它的原型,如此继续下去。 通常,在基于类的面向对象语言中,实例装载状态,类装载方法,且继承的仅仅是结构和 行为。而在 ECMAScript 中,状态和方法均由对象装载,且结构、行为、状态都会被继承。 所有没有直接包含某个它们的原型所包含的特定属性的对象,与它们的原型共享那个属性 和它的值。下面的图表阐述了一切: CF 是一个构造函数(当然也是一个对象)。使用0 码力 | 58 页 | 563.06 KB | 1 年前3
JavaScript Promise迷你书(中文版)reject(new Error(req.statusText)); ,创建一个Error对象后再将具体 的值传进去。 传给 reject 的参数也没有什么特殊的限制,一般只要是Error对象(或者 继承自Error对象)就可以。 JavaScript Promise 迷你书(中文版) 12 传给 reject 的参数,其中一般是包含了reject原因的Error对象。 本次因为状态值不等于 JavaScript Promise 迷你书(中文版) 16 jQuery和thenable jQuery.ajax()18的返回值是一个具有 .then 方法的 jqXHR Object19对 象,这个对象继承了来自 Deferred Object20 的方法和属性。 但是Deferred Object并没有遵循Promises/A+或ES6 Promises标准,所 以即使看上去这个对象转换成了一个promise对象,但是会出现缺失 但是由于stack trace等原因我们不能完美的创建一个继承自 Error 的类,不过在这里我 们的目的只是为了和Error有所区别,我们将创建一个 TimeoutError 类来实现我们的 目的。 在ECMAScript6中可以使用 class 语法来定义类之间的继承关系。 class MyError extends Error{ // 继承了Error类的对象 } 为了让我们的 TimeoutError0 码力 | 112 页 | 1010.02 KB | 1 年前3
2019-2021 美团技术年货 前端篇镜像定制和发布的详细流程见官方文档,本文不再 赘述。其中用于定制 Flutter Web 镜像的 Dockerfile 文件如下: 30 > 2021年美团技术年货 FROM $BaseImage \# 继承基础镜像 RUN apt-get update RUN apt-get install rubygems -y RUN gem install flutter-cli RUN flutter-cli ● MRN 容器插件:@r2x/plugin-container-mrn。 ● Titans 容器插件:@r2x/plugin-container-h5。 除了扩展新的容器平台,我们还可以通过继承现有的容器插件,来编写一些特殊的定 制化功能插件。 1. 对代码进行预处理 基于开放式插件能力,我们可以像 Babel 插件一样,通过对 AST 语法的修改对代码 源文件进行编译前后的修改。 至此,我们应该了解了 Target 内部是如何寻找 Swift 方法声明的了。 第二步 - 如何找到 Objective-C 组件里的方法声明 回到第一段代码中,我们可以看到 PetViewController 是继承自 UIViewController, 而这也意味着我们的代码会与 Objective-C 代码进行交互,因为大部分系统库,例 如 UIKit 等,还是使用 Objective-C 编写的。 在这个问题上,Swift0 码力 | 738 页 | 50.29 MB | 1 年前3
Vue.js v3.0 教程(Vue3 教程)6. This is a child component 7. ` 8. }) 你可以在非 prop Attribute 小节了解更多关于组件属性继承的信息。 :style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 ( 3. console.log(this.$attrs) // { onChange: () => {} } 4. } 非 Prop 的 Attribute Attribute 继承 非 Prop 的 Attribute - 94 - 本文档使用 书栈网 · BookStack.CN 构建 5. }) 当有一个 HTML 元素将 change 事件作为 date-picker target.value) // 将记录所选选项的值 5. } 6. } 7. }) 如果你不希望组件的根元素继承 attribute,你可以在组件的选项中设置 inheritAttrs: false 。例如: 禁用 attribute 继承的常见情况是需要将 attribute 应用于根节点之外的其他元素。 通过将 inheritAttrs 选项设置为 false0 码力 | 368 页 | 3.97 MB | 1 年前3
《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理Tapable { // ... } class Compilation extends Tapable { // ... } 核心对象 Compiler 继承 Tapable 核心对象 Compilation 继承 Tapable Tapable 是什么? const { SyncHook,0 码力 | 39 页 | 3.66 MB | 1 年前3
共 28 条
- 1
- 2
- 3













