如何在JavaScript中调用嵌套函数?请求代码问题排查指导
解决嵌套函数调用的问题
嘿,我来帮你搞定这个小问题~
你现在的代码之所以会出错,核心原因是:myFunction内部定义了play函数,但它执行完后没有返回任何包含play方法的内容,默认返回的是undefined。你试图调用myFunction().play(2,3),就相当于在undefined上访问play方法,这肯定会抛出错误的。
给你两种简单的修正方案:
方案一:让myFunction返回包含play方法的对象
这是最贴合你调用写法的方式,直接让myFunction返回一个带有play方法的对象:
<html> <body> <p id="demo"></p> <script> function myFunction() { // 返回包含play方法的对象 return { play: function(a, b) { document.getElementById("demo").innerHTML = a * b; } }; } myFunction().play(2,3); </script> </body> </html>
方案二:让myFunction直接返回play函数
如果不需要用.play的调用方式,也可以让myFunction直接返回内部的play函数,然后直接调用:
<html> <body> <p id="demo"></p> <script> function myFunction() { return function(a, b) { document.getElementById("demo").innerHTML = a * b; } } // 直接调用返回的函数 myFunction()(2,3); </script> </body> </html>
两种方案都能解决你的问题,第一种更符合你原本的调用逻辑,你可以根据需求选择~
内容的提问来源于stack exchange,提问作者user9525655
相关产品推荐
相关产品推荐

