function partial(fn, str1, str2) {
var arr=[];
arr=Array.prototype.slice.call(arguments,1);
console.log('arr1',arr);
var result=function(str3){
arr=arr.concat(Array.prototype.slice.call(arguments));
console.log('arr2',arr);
return fn.apply(null,arr);
}
return result;
}
function partial(fn, str1, str2) {
function result(str3) {
return fn(str1, str2, str3);
}
return result;
}
function partial(fn, str1, str2) {
function result(str3) {
return fn.call(this, str1, str2, str3);
}
return result;
}
function partial(fn, str1, str2) {
function result(str3) {
return fn.apply(this, [str1, str2, str3]);
}
return result;
}
function partial(fn, str1, str2) {
return fn.bind(this, str1, str2);
}
function partial(fn, str1, str2) {
function result(str3) {
return fn.bind(this, str1, str2)(str3);
}
return result;
}
function partial(fn, str1, str2) {
return function(str3) {
return fn(str1, str2, str3);
}
}
const partial = (fn, str1, str2) => str3 => fn(str1, str2, str3);
var sayIt = function(greeting, name, punctuation)
{
return greeting + ', ' + name + (punctuation || '!');
};
console.log('jieguo',partial(sayIt, 'Hello', 'Ellie')('!!!'));
console