Javascript调用其他对象方法

时间:2015-01-29 15:31:02

标签: javascript function object

我有这两个对象:A和B.我想从B调用A.something,但是没有用...

A = function()
{
  function something()
  {
     //do something
  }
}

B = function()
{
  A.something();
}

这会引发“typeError,A.something();不是函数”......

3 个答案:

答案 0 :(得分:1)

当前代码是函数时,会尝试将A用作对象。您需要调用函数A(),但其something方法不可用(因为它未公开)。

如果您希望A成为对象,可以使用如下对象文字:

A = {
  something: function()
  {
     //do something
  }
}

B = function()
{
  A.something();
}

或者对于更多经典外观方法,您可以使用new

function A()
{
  this.something()
  {
     //do something
  }
}

B = function()
{
  var a = new A();
  a.something();
}

还有更多方法。您可以通过在Object.create函数中返回一个对象来使用A或使用更多功能方法。

答案 1 :(得分:0)

不要将A声明为函数本身,将其声明为对象:

A = {}

然后在地方something内作为您的职能:

A = {
    something: function() {
        //do something
    }
}

您现在可以致电A.something()

答案 2 :(得分:0)

首先,要在javascript中创建一个对象,你必须像这样定义你的类A(简单方法,不使用原型):

A = function()
{ 
  return {
    something = function()
    {
       //do something
    }
  }
}

然后通过调用var object = A()创建您的对象。

所以你的代码最终应该是这样的:

A = function()
{ 
  return {
    something = function()
    {
       //do something
    }
  }
}

B = function()
{
  var aObject = A();
  aObject.something();
}