Показать сообщение отдельно
  #6 (permalink)  
Старый 15.08.2016, 08:08
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

потому, что аргументы не пробросил
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));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 15.08.2016 в 08:11.
Ответить с цитированием