箭头函数中的重现(JS Harmony)

时间:2014-12-19 12:48:16

标签: javascript ecmascript-6 recurrence arrow-functions

最近,我为OP编写了这个函数:

$.prototype.reduce = function reduce(obj1, obj2) {
  for (var k in obj2) {
    if (obj1.hasOwnProperty(k) && obj2.hasOwnProperty(k)) {
      if (typeof obj1[k] == "object" && typeof obj2[k] == "object") {
         reduce(obj1[k], obj2[k]);
      }
      else delete obj1[k];
    }
  }
}

此函数使用命名函数表达式的功能来使用重复。我现在想知道,如何使用新的箭头函数完成相同的行为,因为它们每个定义始终是匿名的。

$.prototype.reduce = (obj1, obj2) => {
  for (var k in obj2) {
    if (obj1.hasOwnProperty(k) && obj2.hasOwnProperty(k)) {
      if (typeof obj1[k] == "object" && typeof obj2[k] == "object") {
         XXXX          }
      else delete obj1[k];
    }
  }
}

代替XXX,我会有以下想法:

1。 arguments.callee(obj1[k], obj2[k]);(显然已弃用)

2。 $.reduce(obj1[k], obj2[k])(调用函数变量本身 - 对于自调用函数表达式将失败)

3。继续使用" classic"函数表达式

我错过了更多方法吗?哪个是在双箭头函数中使用重复的最佳方法?

0 个答案:

没有答案