Форум программистов, компьютерный форум, киберфорум
Наши страницы

JavaScript

Войти
Регистрация
Восстановить пароль
 
YoungProgrammer
4 / 4 / 1
Регистрация: 18.01.2011
Сообщений: 206
#1

This в функции, которая в функции - JavaScript

04.07.2015, 10:02. Просмотров 184. Ответов 1
Метки нет (Все метки)

Листал учебник по js, наткнулся значит на тему "функции для работы с функциями"
Вот такой вот код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Возвращает самостоятельную функцию, которая в свою очередь вызывает
// функцию "f" с заданными аргументами и добавляет дополнительные
// аргументы, передаваемые возвращаемой функции.
// (Этот прием иногда называется "currying".)
function bindArguments( /* функция */ f /*, начальные аргументы... */ ) {
    var boundArgs = arguments;
    return function() {
            // Создать массив аргументов. Он будет начинаться с аргументов,
            // определенных ранее, и заканчиваться аргументами, переданными сейчас
            var args = [];
            for (var i = 1; i < boundArgs.length; i++) args.push(boundArgs[i]);
            for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);
            // Теперь вызвать функцию с новым списком аргументов
            return f.apply(this, args);
                }
            }
Я все понимаю в том коде кроме строчки return f.apply(this, args);. Никак не могу понять, что будет возвращать this и что он вообще там делает.

Безымянная функция-конструктор, получается вызывает f как метод?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2015, 10:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос This в функции, которая в функции (JavaScript):

Дождать выполнения функции которая выполняется в другой функции JavaScript - JavaScript
Добрый день. Мне нужно выполнить ajax функцию в другой функции. сейчас я это реализовал как : function func1() { ...

Вызов функции, которая передалась через параметр - JavaScript
Создается функция, у которой тип одного из параметров - функция function test(x, y, func){ // x - число, y - число, func - функция ...

Синтаксис анонимной функции, которая содержит весь код - JavaScript
Привет всем. Прочитал, что код вставляют в тело анонимной функции, вот такой: ( function() { // код } () ); правда без...

Получение значения локальной переменной функции вне этой функции - JavaScript
Возможно ли переменную объявленную в функции использовать за ее пределами? Функции вызывается только 1 раз, больше вызывать ее нельзя.

вызов функции из другой функции после нажатия на кнопку - JavaScript
Помогите, пожалуйста! Никак не могу понять почему не запускается функция d() Полный код: &lt;script language=&quot;javascript&quot;&gt; function...

Вызов функции внутри другой функции - JavaScript
Доброго времени суток! Есть код, которые показывают расстановку шахматных фигур на доске, и если ход был сделан не правильно то фигура...

1
Thisman
364 / 335 / 81
Регистрация: 17.07.2013
Сообщений: 950
04.07.2015, 11:19 #2
YoungProgrammer,

Javascript
1
f.apply(this, args);
apply вызывает функцию в нужном контексте, в данном случае нужный контекст будет window, потому что по умолчанию внутри функции this ссылается на window
Javascript
1
2
3
function logContext() { console.log( this ) };
 
logContext(); // window
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2015, 11:19
Привет! Вот еще темы с ответами:

Передача функции с парамтрами в качестве функции - JavaScript
Есть функции function Aut(p1,p2){....}; function Set(F1,F2,Par1,Par1){ if(Par1&gt;Par2)F1(); else F2();} В функции Set...

Вызов функции из другой функции в объекте - JavaScript
Добрый день. У меня есть скрипт: var combiner = { getString: function(param){ return param; }, run: function(){ ...

Вызов функции, находящейся в другой функции - JavaScript
Добрый день! Есть такая функция: function func1(p1, p2) { function func2() {alert(1);} func2(); } Мне нужно...

Управление переменными функции из другой функции - JavaScript
чисто гипотетически есть функция: function first() { var b = ; } а ниже другая функция: function second() { //как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru