node.js ecmascript 6功能可用于模拟函数调用吗?我看到有Proxy
但不确定如何使用它。
让我们说..我有一个代码
class E{
someOtherMethod(a){
return 100;
}
}
class D{
someMethod(a){
// some ... code
var e = new E();
e.someOtherMethod();
// some ... more code
}
}
我想模仿它,当我引用D时,E的实例是在someMethod 中创建的,我想测试。
var d = new D();
when(E).someOtherMethod(a).return(1); // Or anything similar with ES 6
答案 0 :(得分:0)
试一试。
应该注意你。 ES6并没有改变Javascript的内部结构,它只是在它上面添加了一些语法糖。这是我刚刚在Chrome中测试过的代码(它通过返回'模拟'来工作),所以它应该可以在没有Node中的函数包装器的情况下正常工作。
(function() {
'use strict';
class D {
someMethod() {
return 100;
}
};
var obj = new D();
var oldMthd = obj.someMethod;
obj.someMethod = function() { return 'Mock'; }
alert(obj.someMethod());
})();