javascript - 如何将参数传递给事件监听器中的函数

标签 javascript addeventlistener arrow-functions

我正在应对一个挑战,我对 JS 很陌生,坦白说我并不完全理解这个挑战。 要进入下一阶段,我需要回答的问题是:

Step 2 Create the following 3 functions:

a displayBirthdate arrow function a displayPhone arrow function and a displayAddress arrow function These functions will be called by event listeners attached to buttons in the UI.

Step 3 Create a displayExtraUserInfo arrow function. It should take in a single parameter. It should then :

Add a click listener to the BUTTON with id of btn-birthdate. The listener should make a call to displayBirthdate and pass in the parameter displayExtraUserInfo received

Add a click listener to the BUTTON with id of btn-phone. The listener should make a call to displayPhone and pass in the parameter displayExtraUserInfo received

Add a click listener to the BUTTON with id of btn-address. The listener should make a call to displayAddress and pass in the parameter displayExtraUserInfo received

For the next 3 steps, be sure you have covered Step 1 above, then review https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6 for a primer on ES6 destructuring

Step 4 Locate the displayBirthdate function you initially defined, which took no parameter. Modify it to use object de-structuring to get just the dob property of the parameter object it will receive.

Step 5 Like in step 4, locate the displayAddress function and de-structure its parameter to get just the location property

Step 6 Like in step 4, locate the displayPhone function and de-structure its parameter to get just the phone and cell properties

这是我的代码:

var displayBirthdate = ({dob = 'DOB'}) => {};
var displayPhone = ({location = 'location'}) => {};
var displayAddress = ({phone = 'phone', cell='cell'}) =>{};

var displayExtraUserInfo = (params) => { 
      document.getElementById("btn-birthdate").addEventListener("click", function(){ displayBirthdate(params)});
      }

但是我的理解不太对,是不是我的逻辑有问题?或代码?我不知道我做错了什么。

最佳答案

我从你的问题中得到的是,你想在点击时调用 displayBirthdate ,并希望将 displayExtraUserInfo 中传递的 params 传递给 显示出生日期

var displayBirthdate = (params) => (console.log(params));
var displayPhone = ({location = 'location'}) => ({});
var displayAddress = ({phone = 'phone', cell='cell'}) =>({});

var displayExtraUserInfo = (params) => { 
      document.getElementById("btn-birthdate").addEventListener("click",
         function(){
             displayBirthdate(params)
         });
 }

displayExtraUserInfo('some data')
<button id="btn-birthdate">click me</button>

关于javascript - 如何将参数传递给事件监听器中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55114997/

相关文章:

javascript - 通过HTML代码控制python代码

javascript - 使用 jQuery 获取元素的类列表

javascript - d3.js 如何定位和更改元素的属性

javascript - 添加而不是连接数组中的对象

javascript - 对 HTML5 表单有效的事件监听器

javascript - JS 中的箭头和词法范围

javascript - 由于某种原因返回 setTimeout 返回 1

javascript - 将事件监听器添加到动态创建的 KonvaJS 图像形状

Javascript 通过循环添加事件监听器

javascript - 为什么要使用这个 javascript 箭头函数或者有什么区别?