最近,我为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"函数表达式
我错过了更多方法吗?哪个是在双箭头函数中使用重复的最佳方法?