Argument binding demo

by SgtPooki

JavaScript

var only1Arg = function(arg1) { console.log(arg1); }
var has2Args = function(arg1, arg2) { console.log(arg1, arg2); }
var has3Args = function(arg1, arg2, arg3) { console.log(arg1, arg2, arg3); }

console.log('only1arg function with no args bound');
var only1ArgHandler = only1Arg.bind(null);
only1ArgHandler();
only1ArgHandler('a different string');
console.log('-------------------------------------------------');

console.log('only1arg function with ("some string") arg bound');
var only1ArgHandler2 = only1Arg.bind(null, 'some string');
only1ArgHandler2();
only1ArgHandler2('and another different string');
console.log('-------------------------------------------------');

console.log('has2Args function with no args bound');
var has2ArgHandler = has2Args.bind(null);
has2ArgHandler();
has2ArgHandler(1);
has2ArgHandler(1, 2);
console.log('-------------------------------------------------');


console.log('has2Args function with ("a") arg bound');
var has2ArgHandler1 = has2Args.bind(null, 'a');
has2ArgHandler1();
has2ArgHandler1(1);
has2ArgHandler1(1, 2);
console.log('-------------------------------------------------');

console.log('has2Args function with ("a", "b") args bound');
var has2ArgHandler2 = has2Args.bind(null, 'a', 'b');
has2ArgHandler2();
has2ArgHandler2(1);
has2ArgHandler2(1, 2);
console.log('-------------------------------------------------');


console.log('has3Args function with no args bound');
var has3ArgHandler = has3Args.bind(null);
has3ArgHandler();
has3ArgHandler(1);
has3ArgHandler(1, 2);
has3ArgHandler(1, 2, 3);
console.log('-------------------------------------------------');


console.log('has3Args function with ("a") args bound');
var has3ArgHandler1 = has3Args.bind(null, 'a');
has3ArgHandler1();
has3ArgHandler1(1);
has3ArgHandler1(1, 2);
has3ArgHandler1(1, 2, 3);
console.log('-------------------------------------------------');


console.log('has3Args function with ("a", "b") args bound');
var has3ArgHandler2 = has3Args.bind(null, 'a',...