Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   передать анонимную функцию, вызывающую другую функцию с нужными параметрами (https://javascript.ru/forum/misc/35778-peredat-anonimnuyu-funkciyu-vyzyvayushhuyu-druguyu-funkciyu-s-nuzhnymi-parametrami.html)

Ваяс 21.02.2013 19:09

передать анонимную функцию, вызывающую другую функцию с нужными параметрами
 
Всех приветствую подскажите пожалуйста как можно передать в
setOnLoadCallback анонимную функцию, вызывающую drawVisualization() с нужными параметрами или может drawVisualization вызвать с нужными параметрами
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawVisualization);
function drawVisualization(i, arrData) {                                  
      var data = google.visualization.arrayToDataTable(arrData);
      var ac = new google.visualization.ComboChart(document.getElementById('visualization-' + i));
      ac.draw(data, {	
      width: 170,
      height: 55                            
     });        
}

danik.js 21.02.2013 19:21

ES5 вариант:
Function.prototype.bind(thisArg, arg1, arg2);

например
google.setOnLoadCallback(drawVisualization.bind(this, 5, {prop: 'value'}));

Олдскульный вариант через обертку:

google.setOnLoadCallback(function(){
    drawVisualization(5, {prop: 'value'});
});

Ваяс 21.02.2013 19:28

УРРРРРРРРРРРРАААААААААААА А ))))))))))))))))))))))))))))))

Ваяс 21.02.2013 19:29

Только я вот этот вариант не совсем понял
Function.prototype.bind(thisArg, arg1, arg2);

Что это?

rgl 21.02.2013 19:39

Цитата:

Сообщение от danik.js (Сообщение 236211)
ES5 вариант:

Олдскульный вариант через обертку:

google.setOnLoadCallback(function(){
    drawVisualization(5, {prop: 'value'});
});

Хоть функция и не возвращает ничего, я бы все равно добавил return, для стильности:

google.setOnLoadCallback(function(){ return drawVisualization(5, {prop: 'value'});

danik.js 21.02.2013 20:12

Цитата:

Сообщение от Ваяс
Только я вот этот вариант не совсем понял
Function.prototype.bind(thisArg, arg1, arg2);

Что это?

Это для наглядности. В коде так нельзя использовать.


Часовой пояс GMT +3, время: 14:33.