首页 > 解决方案 > 如何访问从函数表达式返回的值?

问题描述

我正在尝试从onchange事件中返回并访问动态选择的值。我知道如何使用函数声明,但我不清楚函数表达式。一点帮助将不胜感激。

js

//create select
var select = document.createElement('select');
select.setAttribute('id','select_month');
//onchange
select.onchange = function changeMonth(selectedmonth){
selectedmonth = this.value;//works well here
return selectedmonth;
};

var selectedmonth = changeMonth();//undefined

标签: javascriptfunctionexpression

解决方案


changeMonth是一个仅作用于函数本身的变量,因此对脚本的其余部分不可用。

即使它可用,也要意识到当 DOM 调用该函数时(当事件触发时),它会在this绑定到 DOM 元素的情况下调用它。当在代码中显式调用它时,您也应该这样做。

好消息是对函数的引用可以作为select.onchange,所以使用它。这样你就可以同时解决这两个问题:

var selectedmonth = select.onchange(select);

推荐阅读