isDeepStrictEqual()方法进行对象比较,但被错误阻止:
util.isDeepStrictEqual() is not a function
根据官方文档:此方法是在v9.0.0中引入的,我正在使用Node v12:https ://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2
我确认此方法在命令行上可用:
D:\>node
Welcome to Node.js v12.18.2.
Type ".help" for more information.
> require("util").isDeepStrictEqual({'name': 'john'}, {'sex': 'male'})
false
> require("util").isDeepStrictEqual({'sex': 'john'}, {'sex': 'male'})
false
> require("util").isDeepStrictEqual({'sex': 'male'}, {'sex': 'male'})
true
这是我的代码:
class App extends Component {
constructor(props) {
super(props);
var util = require('util');
var obj1 = {name: 'john'};
var obj2 = {sex: 'male'};
var result = util.isDeepStrictEqual(obj1, obj2);
}
我不知道您是否已完成此操作,因此请首先执行util-npm
npm install util
并添加到@ 3limin4t0r答案,我认为util不应该在构造函数中声明。
将其作为课外的全局常量
例如
const util = require('util');
class Foo {
constructor() {
this.a = 42;
}
bar(callback) {
callback(null, this.a);
}
}
const foo = new Foo();
const naiveBar = util.promisify(foo.bar);
// TypeError: Cannot read property 'a' of undefined
// naiveBar().then(a => console.log(a));
naiveBar.call(foo).then((a) => console.log(a)); // '42'
const bindBar = naiveBar.bind(foo);
bindBar().then((a) => console.log(a)); // '42'
这是在Util doc(isDeepStrictEqual)下方进行承诺的示例
因此,可以将其用作全局常量,也可以像在命令行中一样直接使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句