突然看到一篇远在2010年的老文,作者以章节的形式向我们介绍了 的部分内容,主要涉及到 执行上下文、变量对象、作用域、this 等语言细节。内容短小而精悍,文风直白而严谨,读完有酣畅淋漓、醍醐灌顶之感,强烈推荐!!! 原文链接: "这里" 本想翻译成文,原来早已有人做了, "这里" 。真生不逢时,何 ...
分类:
编程语言 时间:
2018-08-02 17:44:57
阅读次数:
142
函数和对象的关系 函数可以有属性,对象也可以有属性,在函数名前使用 操作符即可返回一个函数的实例化对象 每个函数都有一个属性(prototype)原型对象,发现有 属性和 属性, 指向创建它的构造器函数,这里要明确的是 函数也会有构造函数,而这个 与它的构造函数的 prototype 是同一个东西, ...
分类:
编程语言 时间:
2018-08-02 13:51:30
阅读次数:
146
1.装饰器 为什么要使用装饰器? 答:开放封闭原则:对修改封闭,对扩展开放 装饰器实现的两个要求: 1.装饰器不能修被装饰对象的源码 2.装饰器不能修改被装饰对象的调用方式 装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能 装饰器语法: 2.迭代器 1.迭代的概念 迭代器即迭代的工具,那 ...
分类:
其他好文 时间:
2018-08-02 01:57:10
阅读次数:
215
对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言 ...
分类:
其他好文 时间:
2018-08-01 22:15:27
阅读次数:
144
一.函数对象 函数是第一类对象:指的是函数名指向的值可以被当作数据去使用. 1.函数可以被引用 例如: 2.可以当作参数传递给另一个函数 例如: 3.可以当作一个函数的返回值 例如: 4.可以当作容器类型的元素 例如: 二.函数嵌套 函数嵌套分为两大类 1.函数的调用嵌套:在调用一个函数过程中,其内 ...
分类:
编程语言 时间:
2018-08-01 12:11:58
阅读次数:
141
闭包:其实就是js代码在执行的时候会创建变量对象的一个作用域链,标识符解析的时候会沿着作用域链一级一级的网上搜索,最后到达全局变量停止。所以某个函数可以访问外层的局部变量和全局变量,但是访问不了里层的变量 with和catch语句都会在作用域的前端添加一个变量对象 如果一个函数对象要访问内层函数中的 ...
分类:
Web程序 时间:
2018-07-31 21:45:46
阅读次数:
193
1.函数作用域LEGB L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间 G:global全局作用域 B:build-in内置作用域 2.闭包理解与使用 闭包概念:Closure:内部函数中对enclosing作用域的变量进行引用 函数实质与属性 1:函数是一个对象 2:函 ...
分类:
编程语言 时间:
2018-07-30 22:39:58
阅读次数:
229
装饰器的基础 学习前提: 作用域 + 函数的理解 + 闭包 【学习,理解】 代码编写原则: 对修改开放对扩展开放 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。 装饰器的应用:经常用于有切面需求的场景,比如:插... ...
分类:
编程语言 时间:
2018-07-28 18:27:57
阅读次数:
132
原型与原型链 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明 在上面的例子中 o1 o2 o3 为普通对象,f1 f2 f3 为函数对象。怎么区分,其实很简单,凡是通 ...
分类:
其他好文 时间:
2018-07-28 13:39:07
阅读次数:
153
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明 var o1 = {}; var o2 =new Object(); var o3 = new f1(); funct ...
分类:
其他好文 时间:
2018-07-28 00:14:29
阅读次数:
163