prototype、__proto__与JavaScript的原型链继承

 2015年03月09日    503

JavaScript没有传统面向对象语言的类继承机制,而是基于原型链继承实现的,其本质是使用函数模拟类的特征。我们可以通过prototype将属性写到原型链上,调用new操作符创建对象(实例化)时,对象实例会把类原型链上的属性关联到自身的__proto__属性上;而子类继承父类时,是将子类的prototype属性指向父类的prototype属性,并在子类prototype属性添加自己的方法和属性实现对父类的扩展。

阅读全文

npm包管理机制

 2015年03月09日    868

NPM,Node包管理器(Node Package Manager)功能包括:第三方包库、管理计算机中安装的包的机制及定义包依赖关系。提供了公共注册服务,程序员发布的包都被放在了NPM中,NPM提供了一个命令行工具用来下载、安装、管理这些包。你可以按NPM标准的包描述符来指定自己的模块或应该需要依赖的第三方包。

阅读全文

Nodejs模块加载机制

 2015年03月09日    504

Node.js的模块分为两类,一类为核心模块(原生模块),一类为第三方模块(文件模块)。在Node中,即可以通过文件路径也可用名称来引用模块,通过名称引用的模块最终会被映报为一个文件路径(除核心模块外)。核心模块优先级高于文件模块,require相同名称的核心模块和文件模块,被加载到的只能是核心模块。

阅读全文

利用Buffer类处理缓冲区、编码/解码二进制数据

 2015年03月06日    878

javascript 最初是被设计为处理html文档的,因此并不善于处理二进制数据。但在后端开发中离不开对二进制数据的处理,为此Node提供了Buffer类,该类封装了对访问连续内存块的操作,可以处理内存中的数据及创建、切分缓冲区,还可以在两个缓冲区之间复制内存数据。

阅读全文

JavaScript数据类型检测

 2015年03月06日    273

JavaScript的数据类型分为两类:原始类型(Primitive type)、引用类型(Reference type),二者在内存中的存储位置不同。判断一个变量属于哪种类型,这两类数据类型的判断方式也有所有不同,分别使用typeofinstanceof进行检测。

阅读全文