0
Python或jQuery中Pythons functools.partial的等效函數是什麼?Python中的部分等效Javascript/jQuery
Python或jQuery中Pythons functools.partial的等效函數是什麼?Python中的部分等效Javascript/jQuery
也許是這樣的。這是有點棘手,因爲JavaScript沒有像Python這樣的命名參數,但是這個函數非常接近。
function partial() {
var args = Array.prototype.slice.call(arguments);
var fn = args.shift();
return function() {
var nextArgs = Array.prototype.slice.call(arguments);
// replace null values with new arguments
args.forEach(function(val, i) {
if (val === null && nextArgs.length) {
args[i] = nextArgs.shift();
}
});
// if we have more supplied arguments than null values
// then append to argument list
if (nextArgs.length) {
nextArgs.forEach(function(val) {
args.push(val);
});
}
return fn.apply(fn, args);
}
}
// set null where you want to supply your own arguments
var hex2int = partial(parseInt, null, 16);
document.write('<pre>');
document.write('hex2int("ff") = ' + hex2int("ff") + '\n');
document.write('parseInt("ff", 16) = ' + parseInt("ff", 16));
document.write('</pre>');
順便說一句我還發現https://github.com/azer/functools其具有[實施](https://github.com/azer/functools/blob/4db1708/ LIB/functools.js#L261-L268)。 – Zitrax