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

时间:2014-12-29 03:36:05

标签: javascript requirejs

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。

3 个答案:

答案 0 :(得分:2)

这是JavaScript原型语言的一个问题,而不是Require。这是添加功能范围的问题。尝试这个让它工作,然后我建议你看看与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
  };
     

});

答案 1 :(得分:2)

使用adding

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

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

答案 2 :(得分:1)

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

this.adding(10);

因此,我们在对象范围内调用添加作为Object属性(这就是为什么我们使用 this 关键字)