js的面向對象是基於原型的,並沒有提供對象繼承的語言特性,繼承是通過原型複製來實現的。
繼承僅僅繼承原型鏈上的,構造函數內定義的屬性和函數沒有被繼承。
//16.1.12.js
var util = require('util');
function Base() {
this.x = 10;
this.y = 5;
this.add = function() {
console.log("求和值爲: " + (this.x + this.y));
}
}
Base.prototype.muli = function() {
console.log("乘法值爲: " + (this.x * this.y));
}
function iBase() {
this.x = 11;
this.y = 12;
}
util.inherits(iBase, Base);
var b = new Base();
console.log(b);
b.add();
b.muli();
var c = new iBase();
console.log(c);
c.muli();
//***********************
//util.inspect並不會簡單地直接把對象轉換爲字符串,即使該對象定義了toString方法也不會調用。
console.log(util.inspect(b, true));
//util.isArray(obj) 判斷一個對象是不是數組
//util.isRegExp(object) 判斷一個對象是不是正則表達式
//util.isDate(object) 判斷一個對象是不是日期
nodejs 文件操作fs
//16.1.11.3_1.js
//nodejs file文件操作
var fs = require('fs');
var buf = new Buffer(1024);
//異步讀取
fs.readFile('input.txt', function(err, data) {
if (err) {
return console.error(err);
}
console.log("異步讀取: " + data.toString());
});
//同步讀取
var data = fs.readFileSync('input.txt');
console.log("同步讀取: " + data.toString());
console.log("Part1 End");
//
fs.open('input.txt', 'r+', function(err, fd) {
if (err) {
return console.error(err);
}
fs.read(fd, buf, 0, buf.length, 0, function(err, bytes) {
if (err) {
console.log(err);
}
// 僅輸出讀取的字節
if (bytes.length > 0) {
console.log(buf.slice(0, bytes).toString());
}
//關閉文件
fs.close(fd, function(err) {
if (err) {
console.log(err);
}
console.log("文件關閉成功");
})
});
});
//fs.ftruncate(fd, len, callback) 異步模式下截取文件
//fs.unlink(path, callback) 刪除文件
//fs.mkdir(path[, mode], callback) 創建目錄
//fs.rmdir(path, callback)
fs.mkdir('/test/tmp', function() {
console.log("創建目錄成功");
});
fs.rmdir('/test/tmp', function() {
console.log("刪除目錄成功");
});
文件模塊方法參考手冊
以下爲 Node.js 文件模塊相同的方法列表:
序號 | 方法 & 描述 |
---|---|
1 |
fs.rename(oldPath, newPath, callback) 異步 rename().回調函數沒有參數,但可能拋出異常。 |
2 |
fs.ftruncate(fd, len, callback) 異步 ftruncate().回調函數沒有參數,但可能拋出異常。 |
3 |
fs.ftruncateSync(fd, len) 同步 ftruncate() |
4 |
fs.truncate(path, len, callback) 異步 truncate().回調函數沒有參數,但可能拋出異常。 |
5 |
fs.truncateSync(path, len) 同步 truncate() |
6 |
fs.chown(path, uid, gid, callback) 異步 chown().回調函數沒有參數,但可能拋出異常。 |
7 |
fs.chownSync(path, uid, gid) 同步 chown() |
8 |
fs.fchown(fd, uid, gid, callback) 異步 fchown().回調函數沒有參數,但可能拋出異常。 |
9 |
fs.fchownSync(fd, uid, gid) 同步 fchown() |
10 |
fs.lchown(path, uid, gid, callback) 異步 lchown().回調函數沒有參數,但可能拋出異常。 |
11 |
fs.lchownSync(path, uid, gid) 同步 lchown() |
12 |
fs.chmod(path, mode, callback) 異步 chmod().回調函數沒有參數,但可能拋出異常。 |
13 |
fs.chmodSync(path, mode) 同步 chmod(). |
14 |
fs.fchmod(fd, mode, callback) 異步 fchmod().回調函數沒有參數,但可能拋出異常。 |
15 |
fs.fchmodSync(fd, mode) 同步 fchmod(). |
16 |
fs.lchmod(path, mode, callback) 異步 lchmod().回調函數沒有參數,但可能拋出異常。Only available on Mac OS X. |
17 |
fs.lchmodSync(path, mode) 同步 lchmod(). |
18 |
fs.stat(path, callback) 異步 stat(). 回調函數有兩個參數 err, stats,stats 是 fs.Stats 對象。 |
19 |
fs.lstat(path, callback) 異步 lstat(). 回調函數有兩個參數 err, stats,stats 是 fs.Stats 對象。 |
20 |
fs.fstat(fd, callback) 異步 fstat(). 回調函數有兩個參數 err, stats,stats 是 fs.Stats 對象。 |
21 |
fs.statSync(path) 同步 stat(). 返回 fs.Stats 的實例。 |
22 |
fs.lstatSync(path) 同步 lstat(). 返回 fs.Stats 的實例。 |
23 |
fs.fstatSync(fd) 同步 fstat(). 返回 fs.Stats 的實例。 |
24 |
fs.link(srcpath, dstpath, callback) 異步 link().回調函數沒有參數,但可能拋出異常。 |
25 |
fs.linkSync(srcpath, dstpath) 同步 link(). |
26 |
fs.symlink(srcpath, dstpath[, type], callback) 異步 symlink().回調函數沒有參數,但可能拋出異常。 type 參數可以設置爲 'dir', 'file', 或 'junction' (默認爲 'file') 。 |
27 |
fs.symlinkSync(srcpath, dstpath[, type]) 同步 symlink(). |
28 |
fs.readlink(path, callback) 異步 readlink(). 回調函數有兩個參數 err, linkString。 |
29 |
fs.realpath(path[, cache], callback) 異步 realpath(). 回調函數有兩個參數 err, resolvedPath。 |
30 |
fs.realpathSync(path[, cache]) 同步 realpath()。返回絕對路徑。 |
31 |
fs.unlink(path, callback) 異步 unlink().回調函數沒有參數,但可能拋出異常。 |
32 |
fs.unlinkSync(path) 同步 unlink(). |
33 |
fs.rmdir(path, callback) 異步 rmdir().回調函數沒有參數,但可能拋出異常。 |
34 |
fs.rmdirSync(path) 同步 rmdir(). |
35 |
fs.mkdir(path[, mode], callback) S異步 mkdir(2).回調函數沒有參數,但可能拋出異常。 mode defaults to 0777. |
36 |
fs.mkdirSync(path[, mode]) 同步 mkdir(). |
37 |
fs.readdir(path, callback) 異步 readdir(3). 讀取目錄的內容。 |
38 |
fs.readdirSync(path) 同步 readdir().返回文件數組列表。 |
39 |
fs.close(fd, callback) 異步 close().回調函數沒有參數,但可能拋出異常。 |
40 |
fs.closeSync(fd) 同步 close(). |
41 |
fs.open(path, flags[, mode], callback) 異步打開文件。 |
42 |
fs.openSync(path, flags[, mode]) 同步 version of fs.open(). |
43 |
fs.utimes(path, atime, mtime, callback) |
44 |
fs.utimesSync(path, atime, mtime) 修改文件時間戳,文件通過指定的文件路徑。 |
45 |
fs.futimes(fd, atime, mtime, callback) |
46 |
fs.futimesSync(fd, atime, mtime) 修改文件時間戳,通過文件描述符指定。 |
47 |
fs.fsync(fd, callback) 異步 fsync.回調函數沒有參數,但可能拋出異常。 |
48 |
fs.fsyncSync(fd) 同步 fsync. |
49 |
fs.write(fd, buffer, offset, length[, position], callback) 將緩衝區內容寫入到通過文件描述符指定的文件。 |
50 |
fs.write(fd, data[, position[, encoding]], callback) 通過文件描述符 fd 寫入文件內容。 |
51 |
fs.writeSync(fd, buffer, offset, length[, position]) 同步版的 fs.write()。 |
52 |
fs.writeSync(fd, data[, position[, encoding]]) 同步版的 fs.write(). |
53 |
fs.read(fd, buffer, offset, length, position, callback) 通過文件描述符 fd 讀取文件內容。 |
54 |
fs.readSync(fd, buffer, offset, length, position) 同步版的 fs.read. |
55 |
fs.readFile(filename[, options], callback) 異步讀取文件內容。 |
56 | fs.readFileSync(filename[, options])<br同步版的 fs.readfile.<="" td=""> |
57 |
fs.writeFile(filename, data[, options], callback) 異步寫入文件內容。 |
58 |
fs.writeFileSync(filename, data[, options]) 同步版的 fs.writeFile。 |
59 |
fs.appendFile(filename, data[, options], callback) 異步追加文件內容。 |
60 |
fs.appendFileSync(filename, data[, options]) The 同步 version of fs.appendFile. |
61 |
fs.watchFile(filename[, options], listener) 查看文件的修改。 |
62 |
fs.unwatchFile(filename[, listener]) 停止查看 filename 的修改。 |
63 |
fs.watch(filename[, options][, listener]) 查看 filename 的修改,filename 可以是文件或目錄。返回 fs.FSWatcher 對象。 |
64 |
fs.exists(path, callback) 檢測給定的路徑是否存在。 |
65 |
fs.existsSync(path) 同步版的 fs.exists. |
66 |
fs.access(path[, mode], callback) 測試指定路徑用戶權限。 |
67 |
fs.accessSync(path[, mode]) 同步版的 fs.access。 |
68 |
fs.createReadStream(path[, options]) 返回ReadStream 對象。 |
69 |
fs.createWriteStream(path[, options]) 返回 WriteStream 對象。 |
70 |
fs.symlink(srcpath, dstpath[, type], callback) 異步 symlink().回調函數沒有參數,但可能拋出異常。 |