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中的函数但不会继承内部的属性;