node学习笔记(二)

时间:2023-11-24 10:47:44
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中的函数但不会继承内部的属性;