ECMAScript 5 对象修改保护功能

 2015年03月18日    58

在JavaScript里,默认情况下,你可修改作何你可以访问到的对象。你可以自由的删除对象的属性或覆盖对象的方法,这在多人协作开发的项目中,会造成很大问题,因为你不知道你的修改会对别人造成什么样的影响。如果你是一个模块或代码库的作者,你可能想锁定一些核心库的某些部分,保证任何人不能有意或无意的修改它们。ECMAScript 5引入了几个方法来防止对对象的修改。

阅读全文

JavaScript面向对象:类、方法、属性

 2015年03月09日    99

JavaScript是一种基于对象的语言,与传统面向对象语言(C#、C++)相比,JavaScript中没有类的概念,其继承有两种基本形式:基于对象的继承和基于类型的继承(原型链继承)。无论哪种形式的继承,都是基于一个已经存在的对象创建一个新对象。

阅读全文

prototype、__proto__与JavaScript的原型链继承

 2015年03月09日    104

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

阅读全文

Nodejs模块加载机制

 2015年03月09日    159

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

阅读全文

npm包管理机制

 2015年03月09日    233

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

阅读全文

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

 2015年03月06日    232

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

阅读全文

JavaScript数据类型检测

 2015年03月06日    69

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

阅读全文