потому, что аргументы не пробросил
let o = {
origin: 100
}
let o2 = {
origin: 200
}
function sum(...args){
let megaFunc = function(){
let origin = this.origin;
for(var i =0; i < args.length; i++){
origin += args[i];
}
return origin;
}
return megaFunc.call(this);
}
console.log(sum.call(o, 2,3));
console.log(sum.call(o2, 2,3));
или
let o = {
origin: 100
}
let o2 = {
origin: 200
}
function sum(){
let megaFunc = function(){
let origin = this.origin;
for(var i =0; i < arguments.length; i++){
origin += arguments[i];
}
return origin;
}
return megaFunc.apply(this, arguments);
}
console.log(sum.call(o, 2,3));
console.log(sum.call(o2, 2,3));