点击按钮我想要一些函数来定义它的变量,这可能吗?
button.addEventListener("click", function(){
x.name = "john";
x.lastname = "doe";
});
function x(){
name = "";
lastname = "";
}
如何使函数x返回在事件监听器中定义的姓名和姓氏?
答案 0 :(得分:2)
点击按钮我想要一些功能来定义变量,这可能吗?
函数的工作原理是为函数定义参数,然后使用函数的参数填充这些参数的值。这有效地使用您提供的参数值在函数范围内创建变量。
button.addEventListener("click", function(){
x("john", "doe");
});
function x(name="", lastname=""){
console.log(name, lastname);
}
在这里,我还将参数的默认值添加为等于emtpy字符串,以防万一发送的参数不足。
如何在事件监听器中定义函数
x
返回name
和lastname
?
您使用“return”这个词令人困惑,因为函数可以返回值,但您似乎确实想要将值赋给变量。
如果您确实想要返回相同的值,您可以使用带有对象的return
语句来返回相同的值,但我认为这不是您所追求的。
答案 1 :(得分:1)
您可以在x
处理程序中重新定义click
以设置该函数的默认参数。请注意,"name"
是window
的属性,已将调整后的标识符调整为_name
const button = document.querySelector("button");
button.addEventListener("click", function() {
x = function x(_name = "john", lastname = "doe") {
console.log(_name, lastname)
}
x()
});
function x(_name, lastname) {
console.log(_name, lastname)
}
<button>click</button>
答案 2 :(得分:0)
写这样的东西意味着将在点击事件上调用匿名函数
button.addEventListener("click", function(){
x.name = "john";
x.lastname = "doe";
});
与写作相同
function onClickListener(){
x.name = "john";
x.lastname = "doe";
}
button.addEventListener("click", onClickListener);
但是没有任何东西会从onClickListener函数读取响应,因此不能从函数返回。你可以这样做
var x = {};
function onClickListener(){
x.name = "john";
x.lastname = "doe";
}
button.addEventListener("click", onClickListener);
这是使用全局变量的丑陋代码,但它应该有效。一旦cick事件被calld,全局 x var将具有新值