process.stdout(); //标准输出流
process.stdout.write() //提供了比console.log更底层的接口
process.stdin(); //标准输入流
//初始时他是被暂停的,要想从他那里读取数据需要恢复流
//并且手动编写流的事件响应函数
process.stdin.resume();
process.stdin.on('data',function(data){
process.stdout.write('smile:'+data.toString());
})
//为事件循环设置一项任务,node会在下一次循环的时候调用callback
process.nextTick(callback);
//假设a,b两个函数较为耗时
function a(argv,callback){
b(argv);
callback();
}
a(function(){
n();
})
//用process.nextTick()改写
function a(argv,callback){
b(argv);
process.nextTick(callback);
}
a(function(){
n();
})
//process.nextTick()的效率要比setTimeout(callback,0)要高很多
//util是node.js的核心模块,用于弥补javascript的不足
//util.inherits(constructor,superConstructor)是一个实现对象间原型继承的函数
//javascript没有提供对象继承的语言级别特性,而是通过原型复制来实现的
var util = require('util');
var base = function(){
this.name = 'base';
this.sayHello = function(){
console.log('hello,'+this.name);
}
}
base.prototype.showName = function(){
console.log(this.name);
}
var sub = function(){
this.name = 'sub';
}
util.inherits(sub,base);
var objBase = new base();
var objSub = new sub();
objBase.sayHello(); //hello,base
objBase.showName(); //base
console.log(objBase); // < name:base , sayHello:[Function] >
objSub.showName(); //sub
console.log(objSub); // < name:sub>
//inherits会继承prototype中的函数但不会继承内部的属性;