| 
 Прочитать агрументы из замыкания Всем привет. Подскажите, как прочитать arguments функции secondFunс? Напрямую понятно можно обратиться, а если будет передано неизвестное кол-во аргументов, как перебрать их? 
function secondFunc(a, b) {
    return function(c, d){
        for( let i=0; i<arguments.length; i++ ){
            console.log(arguments[i]);
        }
        return a + b + c + d;
    }
}
function mainFunc(second) {
    return second(1,2);
}
console.log( mainFunc( secondFunc(3,5) ) );
 | 
| 
 RuBrain, вы в своем коде разве не получаете все переданные аргументы в функцию(4-я строка)? В чем вопрос? | 
| 
 Цитата: 
 
function secondFunc(a, b) {
	var prm=[];
	for( let i=0; i<arguments.length; i++ ){
		prm[i]=arguments[i]
	};
    return function(c, d){
        for( let i=0; i<prm.length; i++ ){
            alert(prm[i]);
        }
        return a + b + c + d;
    }
}
function mainFunc(second) {
    return second(1,2);
}
alert( mainFunc( secondFunc(3,5) ) );
 | 
| 
 Понятно, т.е. никакого объекта нету посмотреть наружу. | 
| 
 Цитата: 
 Тебе нужно не известно что... У функции для этого есть специальный объект - arguments. Ты его хочешь видеть внутри еще одной функции, у которой есть свой arguments... Ясное дело, что "первый" arguments нужно "скопировать" в другой массив или объект. Дабы не упоминать arguments в суе. :D Какой тебе еще "специальный" объект нужен? | 
| 
 Цитата: 
 
function secondFunc(...args) {
	return function(){
		const allArgs = [...arguments, ...args];
		console.log(allArgs);
		return allArgs.reduce((m, v) => m + v, 0);
	}
}
function mainFunc(second) {
	return second(1,2);
}
console.log(mainFunc(secondFunc(3,5)));
Цитата: 
 
function secondFunc() {
	const args = arguments;
	return function(){
		const allArgs = [...arguments, ...args];
		console.log(arguments);
		console.log(args);
		return allArgs.reduce((m, v) => m + v, 0);
	}
}
function mainFunc(second) {
	return second(1,2);
}
console.log(mainFunc(secondFunc(3,5)));
 | 
| 
 Цитата: 
 Такого в JS никогда не будет. В разы ухудшится быстродействие увеличится затраты по памяти за сомнительный плюс ссылки на [[scope]] на каждую смену области видимости(вызов функции). | 
| Часовой пояс GMT +3, время: 21:56. |