Node.js เครื่องมือทั่วไป
util Node.js เป็นโมดูลหลักที่ให้คอลเลกชันของฟังก์ชั่นที่ใช้กันทั่วไปที่ใช้ในการทำขึ้นหลัก JavaScript คุณสมบัติคล่องตัวไม่เพียงพอเกินไป
util.inherits
util.inherits (คอนสตรัค, superConstructor) คือการดำเนินการต้นแบบมรดกฟังก์ชั่นระหว่างวัตถุ
คุณลักษณะเชิงวัตถุของ JavaScript เป็นเครื่องต้นแบบที่ใช้แตกต่างจากที่พบในชั้นเรียนตาม JavaScript ไม่ให้วัตถุภาษาระดับสืบทอดคุณสมบัติ แต่โดยการคัดลอกต้นแบบเพื่อให้บรรลุ
ที่นี่เราแนะนำเพียงตัวอย่างการใช้งาน 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); }; 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, ฟังก์ชั่นฐานมีสามคุณลักษณะที่กำหนดไว้ภายในตัวสร้างและต้นแบบที่กำหนดโดย util.inherits มรดก ผลมีดังนี้
base Hello base { name: 'base', base: 1991, sayHello: [Function] } sub { name: 'sub' }
หมายเหตุ: ตฐานที่สืบทอดมาเพียงฟังก์ชั่นที่กำหนดไว้ในต้นแบบและโครงสร้างภายในและการทำงานเพื่อสร้างฐานแอตทริบิวต์ sayHello ฟังก์ชั่นไม่ได้รับการสืบทอดมาต
ในขณะที่มีสรรพคุณในการเป็นต้นแบบที่ไม่สามารถกำหนดให้เป็นวัตถุของการส่งออกคุณสมบัติ console.log หากเราลบ objSub.sayHello (); Comment บรรทัดนี้คุณจะเห็น:
node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Object #<Sub> has no method 'sayHello' at Object.<anonymous> (/home/byvoid/utilinherits.js:29:8) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40)
util.inspect
util.inspect (Object [showHidden], [ลึก], [สี]) เป็นวัตถุที่กำหนดเองวิธีสตริงมักจะใช้สำหรับการแก้จุดบกพร่องและความผิดพลาดเอาท์พุท มันรับวัตถุวัตถุพารามิเตอร์อย่างน้อยหนึ่งนั่นคือการแปลง
showHidden เป็นพารามิเตอร์ตัวเลือกถ้าเป็นจริงการส่งออกจะมีข้อมูลมากกว่าที่ซ่อนอยู่
ความลึกสูงสุด recursion ระบุจำนวนชั้นถ้าวัตถุที่มีความซับซ้อนคุณสามารถระบุวิธีการหลายชั้นในการควบคุมการส่งออกของข้อมูล ถ้าคุณไม่ได้ระบุความลึกของชั้นเริ่มต้น recursive 2 แสดงให้เห็น จำกัด ระบุเป็น null ซ้ำสำรวจชั้นวัตถุเหมือนเดิม ถ้าสีเป็นจริงรูปแบบออกจะอยู่ใน ANSI รหัสสีมันถูกใช้โดยทั่วไปสำหรับผลที่สวยงามมากขึ้นบน terminal
ของโปรดโดยเฉพาะก็คือว่าไม่เพียง แต่ 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)
หากได้รับพารามิเตอร์ "วัตถุ" เป็นผลตอบแทนอาร์เรย์ที่แท้จริงมิฉะนั้นก็จะส่งกลับเท็จ
var util = require('util'); util.isArray([]) // true util.isArray(new Array) // true util.isArray({}) // false
util.isRegExp (Object)
หากได้รับพารามิเตอร์ "วัตถุ" เป็นนิพจน์ปกติผลตอบแทนจริงมิฉะนั้นกลับเท็จ
var util = require('util'); util.isRegExp(/some regexp/) // true util.isRegExp(new RegExp('another regexp')) // true util.isRegExp({}) // false
util.isDate (Object)
หากได้รับพารามิเตอร์ "วัตถุ" เป็นวันที่ผลตอบแทนจริงมิฉะนั้นกลับเท็จ
var util = require('util'); util.isDate(new Date()) // true util.isDate(Date()) // false (without 'new' returns a String) util.isDate({}) // false
util.isError (Object)
หากได้รับพารามิเตอร์ "วัตถุ" เป็นวัตถุข้อผิดพลาดกลับจริงมิฉะนั้นกลับเท็จ
var util = require('util'); util.isError(new Error()) // true util.isError(new TypeError()) // true util.isError({ name: 'Error', message: 'an error occurred' }) // false
รายละเอียดเพิ่มเติมสามารถเข้าถึง http://nodejs.org/api/util.html สำหรับรายละเอียด