我正在尝试控制日志'options'参数但由于某种原因它只显示第一个对象?我怎样才能使控制台记录“新验证器”中的所有对象?
HTML
var Validator = function (options) {
console.log(options);
};
var register_username = document.getElementById("register_username");
var register_password = document.getElementById("register_password");
document.getElementById("register_submit").addEventListener("click", function (e) {
e.preventDefault();
var register_val = new Validator(
{
element: register_username,
type: "str",
min: 1,
max: 20
},
{
element: register_password,
type: "str",
min: 4,
max: 20
}
);
}, false);
的Javascript
element: <input id="register_username" class="register_username" placeholder="Username" name="register_username" autocomplete="off" type="text">
max: 20
min: 1
type: "str"
控制台日志
targetsdkversion
答案 0 :(得分:1)
您可以使用arguments
对象访问所有传入的参数到函数。它是一个数组 like 对象,它包含用于调用函数的所有参数信息。它是一个javascript关键字。
来自MDN
arguments对象是一个可用的局部变量 (非箭头)功能。您可以在其中引用函数的参数 使用arguments对象的函数。该对象包含一个 传递给函数的每个参数的条目,即第一个条目 指数从0开始。
var Validator = function (options) {
console.log(arguments);
};
var register_username = document.getElementById("register_username");
var register_password = document.getElementById("register_password");
document.getElementById("register_submit").addEventListener("click", function (e) {
e.preventDefault();
var register_val = new Validator(
{
element: register_username,
type: "str",
min: 1,
max: 20
},
{
element: register_password,
type: "str",
min: 4,
max: 20
}
);
}, false);
<form>
<input type="text" id="register_username">
<input type="password" id="register_password">
<input type="button" id="register_submit" value="click">
</form>
答案 1 :(得分:0)
您似乎要么传递一个选项数组,要么在构造函数中接受多个选项。
选项数组:
var register_val = new Validator(
[
{
element: register_username,
type: "str",
min: 1,
max: 20
},
{
element: register_password,
type: "str",
min: 4,
max: 20
}
]
);
具有多个选项的构造函数:
var Validator = function (option1, option2) {
console.log(option1, option2);
};
如果您想要这个多选项版本但不知道将发送多少选项,那么您可能希望使用arguments
关键字来获取传递给构造函数的所有参数的数组。 / p>