Node.js ecmascript 6模拟类方法

时间:2016-02-18 03:55:38

标签: node.js

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

1 个答案:

答案 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());
})();