如何访问从函数表达式返回的值?

How to access value returned from a function expression?

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

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

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

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

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

var selectedmonth = select.onchange(select);