摘要: 写在前面 本文讲解JavaScript各种继承方式和优缺点。 但是注意: 这篇文章更像是笔记,哎,再让我感叹一句:《JavaScript高级程序设计》写得真是太好了! 1.原型链继承 function Parent () { this.name = 'kevin'; } Parent.prototy 阅读全文
posted @ 2017-10-31 16:32 qiaoyang_z 阅读(2403) 评论(1) 推荐(1) 编辑
摘要: 写在前面 这篇文章讲解创建对象的各种方式,以及优缺点。 但是注意: 这篇文章更像是笔记,因为《JavaScript高级程序设计》写得真是太好了! 1. 工厂模式 function createPerson(name) { var o = new Object(); o.name = name; o. 阅读全文
posted @ 2017-10-31 16:31 qiaoyang_z 阅读(956) 评论(0) 推荐(0) 编辑
摘要: 类数组对象 所谓的类数组对象: 拥有一个 length 属性和若干索引属性的对象 举个例子: var array = ['name', 'age', 'sex']; var arrayLike = { 0: 'name', 1: 'age', 2: 'sex', length: 3 } 即便如此,为 阅读全文
posted @ 2017-10-31 16:30 qiaoyang_z 阅读(222) 评论(0) 推荐(0) 编辑
摘要: bind 一句话介绍 bind: bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。(来自于 MDN ) 由此我们可以首先得出 bind 函数的两个特点: 返回函数的模拟实现 从第一个特 阅读全文
posted @ 2017-10-31 16:29 qiaoyang_z 阅读(329) 评论(0) 推荐(0) 编辑
摘要: new 一句话介绍 new: new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 也许有点难懂,我们在模拟 new 之前,先看看 new 实现了哪些功能。 举个例子: // Otaku 御宅族,简称宅 function Otaku (name, age) { this.n 阅读全文
posted @ 2017-10-31 16:29 qiaoyang_z 阅读(236) 评论(0) 推荐(0) 编辑
摘要: call 一句话介绍 call: call() 方法在使用一个指定的 this 值和若干个指定的参数值的前提下调用某个函数或方法。 举个例子: var foo = { value: 1 }; function bar() { console.log(this.value); } bar.call(f 阅读全文
posted @ 2017-10-31 16:28 qiaoyang_z 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 定义 在《JavaScript高级程序设计》第三版 4.1.3,讲到传递参数: ECMAScript中所有函数的参数都是按值传递的。 什么是按值传递呢? 也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。 按值传递 举个简单的例子: var value = 1; 阅读全文
posted @ 2017-10-31 16:27 qiaoyang_z 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 定义 MDN 对闭包的定义为: 闭包是指那些能够访问自由变量的函数。 那什么是自由变量呢? 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。 由此,我们可以看出闭包共有两部分组成: 闭包 = 函数 + 函数能够访问的自由变量 举个例子: var a = 1; function 阅读全文
posted @ 2017-10-31 16:26 qiaoyang_z 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 在《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。 对于每个执行上下文,都有三个重要属性: 变量对象(Variable object,VO) 作用域链 阅读全文
posted @ 2017-10-31 16:25 qiaoyang_z 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 在《JavaScript深入之执行上下文栈》中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。 对于每个执行上下文,都有三个重要属性 变量对象(Variable object,VO) 作用域链(Sc 阅读全文
posted @ 2017-10-31 16:15 qiaoyang_z 阅读(436) 评论(0) 推荐(0) 编辑