如果排除对象类型,如何删除并将后面的函数参数移到左侧
How do I delete and move later function arguments to the left if an object type is excluded?
如果已经有人回答了,我很抱歉。我不知道一个更好的专业术语来描述这种方法,我似乎在这里或谷歌搜索中找不到。
基本上我想要的是能够使一个函数像jQuery处理Ajax函数参数。示例:$.get(url, callback);
和$.post(url, data, callback);
基本上,如果data
被排除在函数之外,它将把callback
移动到它的位置。因为当函数运行时,它使用输入顺序中的变量名。我假设这种方法将涉及检查arguments[1]
和arguments[2]
,但我想确保这是正确的方式,因为我喜欢让我的代码尽可能干净。
与其检查参数[1]和参数[2],不如检查
$.post(url, data, callback)
url是否为字符串,数据是否为对象,回调是否为函数
在花时间使用这里的有用信息之后。我设法编写了我的解决方案。我想我张贴我的工作(简化编辑)结果为那些想要一个很好的例子如何使一个。
function post(url) {
var callback, data, isAsync, // Prepare possible arguments.
i, // Loop index.
length = arguments.length; // Get arguments length.
// Check the argument's types for optional passed parameter options.
for (i = 1; i < length && i < 4; i++) {
if (typeof arguments[i] === "object") {
data = arguments[i];
}
if (typeof arguments[i] === "function") {
callback = arguments[i];
}
if (typeof arguments[i] === "boolean") {
isAsync = arguments[i];
}
}
// Asynchronous is enabled by default.
if (isAsync === undefined) {
isAsync = true;
}
// More code here...
}
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数