![](/img/trans.png)
[英]how can i access variables in different javascript functions on the same factory?
[英]Can I access functions variables?
单击按钮时,我希望某些函数定义其变量,这可能吗?
button.addEventListener("click", function(){
x.name = "john";
x.lastname = "doe";
});
function x(){
name = "";
lastname = "";
}
如何使函数 x 返回事件侦听器中定义的名称和姓氏?
单击按钮时,我希望某些函数定义其变量,这可能吗?
函数的工作原理是为函数定义参数,然后用函数的参数填充这些参数的值。 这有效地使用您提供的参数值在函数范围内创建变量。
button.addEventListener("click", function(){
x("john", "doe");
});
function x(name="", lastname=""){
console.log(name, lastname);
}
在这里,我还为参数添加了默认值以等于 emtpy 字符串,以防发送的参数不足。
如何使函数
x
返回事件侦听器中定义的name
和lastname
?
您对“返回”一词的使用令人困惑,因为函数可以返回值,但您似乎实际上想要将值分配给变量。
如果您确实想返回相同的值,您可以使用带有对象的return
语句来return
相同的值,但我认为这不是您所追求的。
您可以在click
处理程序中重新定义x
以设置函数的默认参数。 注意, "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>
写这样的东西意味着匿名函数将在点击事件上被调用
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 事件,全局x var 将具有新值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.