Web开发编程网
分享Web开发相关技术

深入JavaScript系列

JavaScript深入之继承的多种方式和优缺点

admin阅读(948)

写在前面 本文讲解JavaScript各种继承方式和优缺点。 但是注意: 这篇文章更像是笔记,哎,再让我感叹一句:《JavaScript高级程序设计》写得真是太好了! 1.原型链继承 function Parent () { this.na...

JavaScript深入之创建对象的多种方式以及优缺点

admin阅读(935)

写在前面 这篇文章讲解创建对象的各种方式,以及优缺点。 但是注意: 这篇文章更像是笔记,因为《JavaScript高级程序设计》写得真是太好了! 1. 工厂模式 function createPerson(name) { var o = n...

JavaScript深入之类数组对象与arguments

admin阅读(963)

类数组对象 所谓的类数组对象: 拥有一个 length 属性和若干索引属性的对象 举个例子: var array = ['name', 'age', 'sex']; var arrayLike = { 0: 'name', 1: 'age'...

JavaScript深入之new的模拟实现

admin阅读(1000)

new 一句话介绍 new: new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 也许有点难懂,我们在模拟 new 之前,先看看 new 实现了哪些功能。 举个例子: // Otaku 御宅族,简称宅 funct...

JavaScript深入之bind的模拟实现

admin阅读(969)

bind 一句话介绍 bind: bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。(来自于 MDN ) 由此我们可以首先得出...

JavaScript深入之call和apply的模拟实现

admin阅读(941)

call 一句话介绍 call: call() 方法在使用一个指定的 this 值和若干个指定的参数值的前提下调用某个函数或方法。 举个例子: var foo = { value: 1 }; function bar() { console...

JavaScript深入之参数按值传递

admin阅读(912)

定义 在《JavaScript高级程序设计》第三版 4.1.3,讲到传递参数: ECMAScript中所有函数的参数都是按值传递的。 什么是按值传递呢? 也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。...

JavaScript深入之闭包

admin阅读(864)

定义 MDN 对闭包的定义为: 闭包是指那些能够访问自由变量的函数。 那什么是自由变量呢? 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。 由此,我们可以看出闭包共有两部分组成: 闭包 = 函数 + 函数能够访问的...

JavaScript深入之执行上下文

admin阅读(961)

前言 在《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。 对于每个执行上下文,都有三个重要...

JavaScript深入之从ECMAScript规范解读this

admin阅读(843)

前言 在《JavaScript深入之执行上下文栈》中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。 对于每个执行上下文,都有三个重要属性...