zoukankan      html  css  js  c++  java
  • nodejs基础 -- 常用工具util

    util是nodejs的核心模块,提供常用函数的集合,用户弥补核心javascript的功能过于精简的不足

    util.inherits

    是一个实现对象间原型继承的函数

    javascript的面向对象特性是基于原型的,与常见的基于类的不同。javascript没有提供对象继承的语言级别特性,而是通过原型复制来实现的。

    示例:

    var util = require('util');
    function Father(){
        //在构造函数内部定义,不能被继承
        this.name = 'base';
        //在构造函数内部定义,不能被继承
        this.birth = 1991;
        //在构造函数内部定义,不能被继承
        this.sayHello = function(){
            console.log('hello'+this.name);
        }
    }
    //在原型中定义,可以被继承
    Father.prototype.age=18;
    //在原型中定义,可以被继承
    Father.prototype.showName = function(){
        console.log(this.name);
        console.log(this.age);
    }
    //在原型中定义,可以被继承
    Father.prototype.showAge = function(){
        console.log(this.age);
    }
    
    function Son(){
    }
    
    util.inherits(Son,Father);
    
    var objBase = new Father();
    objBase.showName();
    objBase.sayHello();
    console.log(objBase);
    
    var objSub = new Son();
    objSub.showAge();

    我们定义了一个基础对象Father 和一个继承自Father 的Son,Father 在构造函数内定义两个属性(name,birth)和一个函数(sayHello);在原型中定义一个属性(age)和两个函数(showName,showAge),通过util.inherits 实现继承。

    注意:

    Son仅仅继承了Father 在原型中定义的函数,而构造函数内部创造的 Father 属 性和 sayHello 函数都没有被 Son继承。

    同时,在原型中定义的属性不会被console.log 作 为对象的属性输出。

    util.inspect

    util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。

    showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。

    depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多 少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。 如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。

    特别要指出的是,util.inspect 并不会简单地直接把对象转换为字符串,即使该对 象定义了toString 方法也不会调用。

    示例:

    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' } 

    util.isArray(object)

    如果给定的参数 "object" 是一个数组返回true,否则返回false。

    var util = require('util');
    
    util.isArray([])
      // true
    util.isArray(new Array)
      // true
    util.isArray({})
      // false

    util.isRegExp(object)

    如果给定的参数 "object" 是一个正则表达式返回true,否则返回false。

    var util = require('util');
    
    util.isRegExp(/some regexp/)
      // true
    util.isRegExp(new RegExp('another regexp'))
      // true
    util.isRegExp({})
      // false

    util.isDate(object)

    如果给定的参数 "object" 是一个日期返回true,否则返回false。

    var util = require('util');
    
    util.isDate(new Date())
      // true
    util.isDate(Date())
      // false (without 'new' returns a String)
    util.isDate({})
      // false

    util.isError(object)

    如果给定的参数 "object" 是一个错误对象返回true,否则返回false。

    var util = require('util');
    
    util.isError(new Error())
      // true
    util.isError(new TypeError())
      // true
    util.isError({ name: 'Error', message: 'an error occurred' })
      // false
  • 相关阅读:
    必须转载 PHP & memcached 太精彩了,看一遍就能入门
    SYSID 来指定当前system
    How to increase the JES2 spool size
    JOBPARM SYSAFF的用处
    使用多Volume来创建一个dataset
    如何解决db2nodes.cfg line number “1”, Reason code “10”
    epdf macro to remove comments
    如何停止重复的job
    mysql数值类型
    (九)solr实现autocomplete功能
  • 原文地址:https://www.cnblogs.com/hf8051/p/5056973.html
Copyright © 2011-2022 走看看