`

(五)、node.js 核心模块

 
阅读更多

1、全局对象

node.js中的全局对象是global,我们在node.js中能够直接访问的对象通常是global的属性,如console、process等。

1.1、全局对象与全局变量

global是全局变量的宿主,当你定义一个全局变量的时候,这个变量同时会成为全局对象的属性。在node.js中你不可能定义全局变量,因为虽有用户的代码都是属于当前模块的,而模块本事不是最外层上下文。

1.2、process

process是全局变量,也就是global对象的属性。它用于描述当前node.js进程的状态的对象。下面说下process.nextTick(callback)

function doSomething(args, callback) { 
    somethingComplicated(args); callback();
}
doSomething(function onEnd() { 
    compute();
});

 我们假设somethingComplicated和compute()是两个很耗时的操作,由于node.js进程是单线程的,所以程序可能会出现卡顿现象。现在我们采用process.nextTick(callback),代码如下:

 

function doSomething(args, callback) {
   somethingComplicated(args); 
   process.nextTick(callback);
}
doSomething(function onEnd() {
   compute();
});
 当调用doSomething的时候,执行完成somethingComplicated后,在下个事件循环中进行回调函数的调用,因此process.nextTick(callback)会把耗时的操作拆分成了两个耗时较少的事件。

1.3、console

用于控制台标准输出。

1.4、util

util是一个node.js的核心模块,提供常用函数的结合,用于弥补核心js的功能过于精简的不足。我们只介绍util.inherits。

util.inherits是实现对象间原型继承的函数。下面看一个例子、

 

var util = require('util');
function Base() { 
   this.name = 'base';
   this.base = 1991;
   this.sayHello = function() { 
      console.log('Hello ' + this.name);
   }; 
}
Base.prototype.showName = function() {
    console.log(this.name);
};


 下面我们编写一个Base的子类

 

function Sub() {
    this.name = 'sub';
}
util.inherits(Sub, Base);
 进行测试
var objBase = new Base();
objBase.showName(); 
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName(); 
//objSub.sayHello();
console.log(objSub);
 测试结果为Sub类只是继承Base类在原型中定义的函数showName,而在Base类的构造函数中定义的函数和属性都没有被继承。

1.5、util.inspect

它是将任意一个对象转换为字符串的方法。

var util = require('util');
function Person() {
    this.name = 'byvoid';
    this.toString = function() {
    return this.name;
    }; 
}
var obj = new Person(); console.log(util.inspect(obj));
console.log(util.inspect(obj, true));

 运行结果为

{ name: 'byvoid', toString: [Function] }
{ toString:
{ [Function]
[prototype]: { [constructor]: [Circular] }, [caller]: null,
[length]: 0,
[name]: '',
[arguments]: null },
 name: 'byvoid' }

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics