var assert = require('assert');
console.log(assert);
输出结果如下:
{ [Function: ok]
AssertionError:
{ [Function: AssertionError]
super_:
{ [Function: Error]
captureStackTrace: [Function: captureStackTrace],
stackTraceLimit: 10 } },
fail: [Function: fail],
ok: [Circular],
equal: [Function: equal],
notEqual: [Function: notEqual],
deepEqual: [Function: deepEqual],
notDeepEqual: [Function: notDeepEqual],
strictEqual: [Function: strictEqual],
notStrictEqual: [Function: notStrictEqual],
throws: [Function],
doesNotThrow: [Function],
ifError: [Function] }
看到了吧,assert是个函数,函数名为ok。javascript中函数是Function类的实例,也就是对象,所以可为其添加fail和equal等属性。注意输出结果第9行 ok:[Circular] 这个表述,这是指针循环的意思,即ok属性指向了本身,所以调用assert.ok就相当于调用了assert本身。
为了验证以上说法正确性,我们写以下实例:
var test = function ok() {
console.log('test ok')
};
test.ok = test;
test.fail = function fail() {
console.log('test fail');
};
console.log(test);
输出结果为:
{ [Function: ok] ok: [Circular], fail: [Function: fail] }
如果有问题,欢迎批评指正,我只是简单实验验证下~~