![](/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.