Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
function bindParameter(_func, _params)
{
return function()
{
_func.apply(this, _params)
};
}/**
* Bind function to context
* @param {Object|HTMLElement} context
* @param {Function} fn
* @return {Function} function bound to context
*/
$.bind=function(context, fn /*args...*/)
{
if(typeof(context)=='function'){
var args=Array.prototype.slice.call(arguments,0)
args.unshift(null);
return $.bind.apply(this, args);
}
if(arguments.length==2){ // params on call
return function(){
fn.apply(context||null, arguments);
};
}else{ // params on create
var args=Array.prototype.slice.call(arguments,2);
return function(){
fn.apply(context||null, args.concat(Array.prototype.slice.call(arguments,0)));
};
}
};/// delegate bound params on create, if none params on call
function delegate(that, thatMethod /*args...*/)
{
if(arguments.length==2)
/// params on call
return function(){ return thatMethod.apply(that,arguments); };
/// params on create
var args=Array.prototype.slice.call(arguments,2);
return function(){ return thatMethod.apply(that,args); };
}
Передача параметров в обработчики событий JavaScript