同一 js 文件中的未定义函数

undefined function in the same js file

本文关键字:未定义 函数 js 文件 同一      更新时间:2023-09-26
define(function() {
  return {
    show: function(msg) {
      alert(msg);
    },
    showing: function(msg) {
      adding(10); //it throws up an exception saying that adding is undefined.
    },
    adding: function(x) {
      return x + 10;
    }
  };
});

我试图在显示功能上方切换添加,但它似乎也不起作用。我是不是误会了什么?我仍然很新,需要js。

这比 Require 更像是 JavaScript 原型语言的问题。这是添加函数范围的问题。尝试这样做以使其工作,然后我建议您考虑使用JS进行范围界定。

define(function() {
  function addTenTo(x) {
    return x + 10;
  }
  return { 
    show: function(msg) {
        alert(msg);
    },
    showing: function(msg) {
        return addTenTo(10);
    },
    adding: addTenTo   // as suggested by gp
  };

});

this.调用adding

showing: function(msg) {
  this.adding(10);
}

这将引用您要返回的对象,该对象定义显示和添加方法。

您的添加函数不在显示范围内。基本上添加只是对象的一个属性,而不是可以调用的函数名称。

this.adding(10);

因此,我们在对象作用域内调用添加为 Object 属性(这就是我们使用此关键字的原因)