簡體   English   中英

我可以訪問函數變量嗎?

[英]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返回事件偵聽器中定義的namelastname

您對“返回”一詞的使用令人困惑,因為函數可以返回值,但您似乎實際上想要將值分配給變量。

如果您確實想返回相同的值,您可以使用帶有對象的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM