在《你不知道的JavaScript》之“this全面解析”一节中,讲到了this绑定例外的间接引用,代码如下: 注意看最后一行,一开始很难理解,为什么打印出来的是2。 书上的解释如下: 赋值表达式 p.foo = o.foo 的返回值是目标函数的引用, 因此调用位置是 foo() 而不是p.foo( ...
分类:
其他好文 时间:
2019-02-01 23:30:00
阅读次数:
193
一、什么是闭包 闭包就是通过返回一个函数来保留某段作用域的一种方法。通过返回函数把本该消失的作用域保留到这个函数中,并且外界可以通过函数访问这段作用域下的变量。 例一: 这段代码执行后,其实a已经不存在了,因为foo执行完了之后foo的作用域消失了,所以作用域里面的变量不见了,被销毁了。在JS中存在 ...
分类:
Web程序 时间:
2019-01-31 00:11:21
阅读次数:
180
对于C#中的Dictionary类相信大家都不陌生,这是一个Collection(集合)类型,可以通过Key/Value(键值对的形式来存放数据;该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存,提升整体效率。 那么是什么样的设计能使得Dictionary ...
分类:
其他好文 时间:
2019-01-30 01:22:34
阅读次数:
121
class Foo:#__init__括号中传参数的方式忘了,但是可以通过以下赋值 def __init__(self): self.name = 'a'#这叫属性,很奇怪的东西,能把方法当字段使用 @property def prop(self): print('123')obj = Foo()o ...
分类:
其他好文 时间:
2019-01-29 18:01:54
阅读次数:
148
1. 通用选择器 * 2.id选择器 3.class选择器 4.标签选择器 5.后代选择器 选择div后面的所有p元素 6.相邻选择器 选择div后面的p元素 7.子元素选择器 ...
分类:
Web程序 时间:
2019-01-29 10:55:32
阅读次数:
208
提示不多说,记住几个要点: 1.变量和函数都会提升,如下 2.函数会被提升但是,函数表达式不会(ReferenceError) 实际上第三种看得出来无论函数表达式在哪个位置声明,f() 都相当于是一个匿名函数,并把引用赋值给了fn; 3.函数首先会被提升(函数优先) 输出1 二不是2,因为foo是普 ...
分类:
Web程序 时间:
2019-01-28 23:10:55
阅读次数:
237
关于js 还是写的简短些,利于个人理解: 先看一个例子: 说明:作用域查找会在找到第一个匹配的标识符时停止,也叫做“”遮蔽效应“” 这里很好理解,我们平时用的也很多。还有就是作用域查找只会查看一级标识符,比如foo.bar,只会查找foo,这个也很好理解。 欺骗词法: 也就是动态修改词法作用域。(不 ...
分类:
Web程序 时间:
2019-01-28 21:08:01
阅读次数:
181
class Base1(object): def func(self): print("Base1.func") class Base2(object): def func(self): print("Base2.func") class Foo(Base1, Base2): def func(se... ...
分类:
其他好文 时间:
2019-01-28 20:14:43
阅读次数:
245