javascript
文章平均质量分 75
zeekCheung
这个作者很懒,什么都没留下…
展开
-
【深入JavaScript】闭包
定义 《JavaScript高级程序设计》对闭包的定义: 闭包指那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。 e.g.: function foo () { a = 1 return function () { console.log(a) } } var bar = foo() bar() // 1 思考 Q1:我们知道,当调用闭包的外部函数的时候,在函数执行结束之后,函数的执行上下文就会退出执行上下文栈,活动对象的也会被销毁。那为什么在外部函数被调用之原创 2021-09-27 23:43:04 · 194 阅读 · 0 评论 -
【深入JavaScript】 函数执行过程与作用域链
函数执行过程与作用域链 执行上下文 在调用函数的之后,在函数执行之前,需要创建一个执行上下文。 这个执行上下文有三个重要属性: 作用域链 变量对象 this 作用域链与变量对象 当代码执行,解析标识符(查找变量) 的时候,首先从当前的变量对象(活动对象 )中搜索,如果没有找到,就会往后逐层搜索各个父级执行上下文的变量对象,直到全局上下文的变量对象——全局对象。 这个由各级执行上下文的变量对象组成的链表就是作用域链。 函数从创建到执行的七个过程 前言 因为在函数执行之前,需要创建它的执行上下文原创 2021-09-26 23:34:23 · 116 阅读 · 0 评论 -
【深入JavaScript】继承
继承 原型链 ECMA-262 把原型链定义为 ECMAScript 的主要继承方式 基本思想:通过原型继承多个引用类型的属性和方法 实现方式:子类的原型对象是父类的实例 存在问题: a) 引用类型的属性会在子类实例中共享 b) 子类在实例化时,不能给父类的构造函数传参 评价:原型链存在的问题导致原型链基本不会被单独使用 function SuperType() { this.property = true } SuperType.propertype.getSuperValue = functio原创 2021-09-25 16:05:32 · 86 阅读 · 0 评论 -
【深入JavaScript】原型链
原型链 构造函数、原型对象、实例对象三者的关系 每个函数内部都有一个 prototype 属性(原型),这是一个指针,指向了一个原型对象。所有通过构造函数实例化的实例对象,都会从关联的原型对象中“继承”属性。 原型对象内部也有一个 constructor 属性(构造函数),也是一个指针,反向指回了构造函数。 实例对象内部也有一个 _proto_ 属性,也是一个指针,也是指向了关联的原型对象。(Object的 _proto_ 是 null) function Person () { } var pers原创 2021-09-25 16:02:19 · 76 阅读 · 0 评论