JavaScript —— 原型 prototype(四)

在 JS 里 prototype 是一个被称作对象的原型属性,这个属性任然是一个对象,它可以作为所有新副本的基引用 (base reference) 。我们可以给这个原型对象添加属性,这些属性成为了由它实例化出来的所有对象的公有属性。 我们可以对比其他强类型语言如 Java 中类定义的非静态属性和函数(public),是属于所有该类的所有对象,也就像这里的 base refere ...

JavaScript —— 闭包(三)

这确实是个问题,我现在答不出来。在这里想聊一个有趣的现象,在中学时代,常常有老先生在解答我们提出问题时,他们可以给出正确的结果。但是说不出个所以然出来,然后老先生会告诉我们: > 这个东西阿,只可意会不可言传呐,你们多练习就可以自行体会其中的奥义啦。 > > 我认为这世间的事物可意会即可言传,不可言传者只能说明水平还不够,还得修行。古有诸葛孔明在《隆中对》用寥寥数语为刘备做了一 ...

JavaScript —— 作用域(二)

Javascript 语言特有的”链式作用域”结构(chain scope) 即子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。 块作用域与函数作用域 函数可以访问函数外部申明的变量,但是函数外部不能反过来访问函数内部的局部变量。 **需要注意的是在 JavaScript 中,区域块( if 、 for 、 `w ...

JavaScript —— 方法的重载(一)

先看百度百科中对于方法重载的定义 > 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。 > > 我们总结一下就是根据不同的参数情况来选择执行不同的程序。 依赖两件事情:方法中 参数数量 和 参数类型 1.参数数量: 方 ...