例如,我正在编写一个使用两个数组的函数。如何定义此函数以将其称为全局函数,将其传递给两个数组或作为Array
方法,将其传递给第二个数组:
func([1, 2, 3], [3, 2, 1]);
[1, 2, 3].func([3, 2, 1]);
这是我的想法:
func = function (...args) { // define global function
if (args.length > 1) {
// function called as global with 2 arrays in arguments
} else {
// function called as Array method, with second array in arguments
}
}
Array.prototype.func = func; // define Array method
还有更好的方法吗? 感谢。
答案 0 :(得分:0)
您可以为原型创建包装函数:
func = function (a,b) { // define global function
// will always have a,b defined
}
Array.prototype.func = function (b){ func(this,b) }; // define Array method
这种方式对你的功能没有任何影响。 (假设你的函数正好需要2个参数)