首页 > 解决方案 > 以编程方式从另一个 javascript 函数更改一个函数中的 javascript 值

问题描述

我意识到这是 javascript 101 并且在这些方面有很多关于 SO 的问题,但我对 JS 非常生疏,似乎无法让它工作。

我正在尝试更改一些使用另一个脚本 A 调用小部件的 javascript B 中的参数。重要的是,A 在调用 B 之前设置 B 中的值,以便 B 使用期望值。

Here is the code I have right now:

A.
    <script type="text/javascript">
    function getName() {
    return "Raoul Walsh";
    }
    </script>
B.     
     <script type="text/javascript">
      new MyView.widget(
      {
      "name": "getName()",
      "locale": "en"
    }
      );
      </script>

小部件没有识别出我想要的值:'Raoul Walsh',而是识别出值'getName()'。换句话说,它没有意识到,我正在尝试调用一个函数。

顺便说一句,我也尝试使用 DOM 设置值失败。

如何在小部件脚本执行之前设置它的值,以便它使用我想要的值执行。

在此先感谢您的任何建议

标签: javascriptfunctiondom

解决方案


您不需要引号,只需调用 getName()

<script type="text/javascript">
    function getName() {
        return "Raoul Walsh";
    }
</script>
<script type="text/javascript">
  new MyView.widget({
      "name": getName(),
      "locale": "en"
    });
</script>

如果 javascript 无法识别该函数,则可能会出现一些在没有完整页面的情况下难以调试的范围问题。

在这种情况下,您可以通过将函数附加到窗口对象来解决问题

<script type="text/javascript">
    window.getName = function() {
        return "Raoul Walsh";
    }
</script>
<script type="text/javascript">
  new MyView.widget({
      "name": window.getName(),
      "locale": "en"
    });
</script>

推荐阅读